Introducing Regular Expressions
Unraveling regular expressions, step-by-step