I am drawn to report on a book I have owned for many years, because it seems to have fewer stars here than it deserves. I think this is because of problems some folks have had with electronic formats. I do see their point, but this is unfair to the editorial content.
So. The following applies to the *paperback* book.
In practice Freidl's book is primarily a programmer's reference. But like the best references (eg the C Programming Language) is formatted as a tutorial.
Introductory chapters establish a need for regexs, giving a brief history and presenting some straightforward use cases.
Thereafter Mr Freidl wades deeper into the waters of obscurity, and we are soon dealing with the minutiae of mode modifiers and greedy versus lazy quantifiers.
Some of this stuff goes rather deeper than I have ever needed to go. For example, opening the book at random to page 245, I read the subheadings 'Pre-check of required character/substring optimization' and 'Length-cognizance optimization'. Not of immediate use to me, but I am glad to know where I can find this if ever (heaven forfend) the performance of my application depends on the construction of regexs.
But this is nit-picking. I dare say it is possible to resolve any regex difficulty with a little applied Googling; but to have this book on your shelf is to know that you have an articulate, clear and complete explanation close to hand.