I am a Perl/CGI programmer, and I had considered myself good at RegExp even before I read this book. Most of the things I knew were from Programming Perl, 3rd edition (chapter 5, Pattern Matching). But I still decided to give Jeffrey a chance since I was having some trouble with my Parse::Syntax module, which is designed to parsing *any* programming language and highlighting the syntax accordingly (provided it has a syntax/grammer file written for the specific language). The accuracy of the parser (and more importantly the speed) does depend on well crafted regular expressions.
As I started reading the book, I couldn't stop. I took it to my school's cafeteria with me and no one could make me leave untill I finished the whole book. I was excited. I was pleased! Here is the outline of tha chapters:
Chapter 1 and 2 introduce you to regular expressions and give some basic regex examples. Mail utility and date matching is two of them.
Chapter 3 mostly talks about conventions that all the regex tools follow and their differences.
Chapter 4 deals with Traditional NFA, POSIX NFA and DFA regex engines and their pros and cons. What you'll like the most is the details provided by the author on each and every single example. He also uses a lot of step-by-step illustrations to take you deeper into the regex engine itself and see/feel how it works. He shows the point of backtrackings and provides awesome benchmarks. He uses such examples of matching a quote, allowing escaped quotes inside the pattern, matching C-style comments, IP addresses and many more.
Chapter 5 deals with writing efficient regular expressions for NFA engines. It also re-vists some of the examples provided in the previous chapter and fine-tunes them.
Chapter 6 and 7 deals with Tool-Language specific features of Regex engines. Chapter 6 is dedicated to Awk, Tcl and GNU Emacs, whereas chapter 7 is entirely dedicated to Perl, good over 100 pages of Perlism.
It's true that there're features that Perl 5.6 offers when it comes to regex that didn't exist at the time this book went to press, (lookbehinds, for example). But this no way makes this book dated. Just take my word for it. Jeffrey put together a great masterpiece that will not die for many years, no matter how fast the technology tends to enhance Haven't read anything more exciting than this for many years.
If you want to learn more about RegEx implementation on a non-Unix platform, chances are this book won't fulfill your needs. However, there are exceptions. The Microsoft .NET Framework e.g. is an implementation designed for compatibility with Perl 5 RegEx's (adding features such as right-to-left matching).
Buy this book if you're a Unix user and want to know all about Regular Expressions. Otherwise, think twice. It might be a bit too specific for your needs.
Regular expressions are such a powerful concept, but some of that power would be easy to miss if not guided correctly through the topic. Jeffrey Freidl does a great job of making a potentially very dry subject interesting, even while getting very involved in all the complexities that are inherent in such a powerful abstraction. He also does a good job of presenting both the general topic of regular expressions and the specific characteristics of the various tools available to process them.
This is a book that you will come back to many times. I actually read it as a precursor to learning Perl several years ago. Then just recently I revisited it while taking a class on compiler construction and found that it still had useful insights for me. If you're a committed programmer, this book should be on your shelf.
Also, the criticisms I've read in reviews here are pretty misguided. It is "chatty", because the author has a genuine enthusiasm for his subject. It is also not a "teach yourself regular expressions in 24 hours" kind of book. There are actually lots of cookbook style examples, but the main point of the book is to give you a solid enough understanding of the general topic that you don't need examples to craft your regexes. In this case, little patience as a reader will be much rewarded.