Regular expressions have a reputation for being a write-only language. That is, you can write a regular expression, but once it's been written it's very difficult to read it and figure out how it works or how to change it. I believe this is mostly down to the extreme terseness of the regular expression language, and the solution is, at least in part, the same as the solution for other kinds of code that are difficult to understand: Documentation. In the rest of this post, I'll discuss how I p...