Russ Cox's article
Regular Expression
Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP,
Python, Ruby, ...). (Summary: "Regular expression matching can be
simple and fast, using finite automata-based techniques that have been
known for decades. In contrast, Perl, PCRE, Python, Ruby, Java, and
many other languages have regular expression implementations based on
recursive backtracking that are simple but can be excruciatingly
slow. With the exception of backreferences, the features provided by
the slow backtracking implementations can be provided by the
automata-based implementations at dramatically faster, more consistent
speeds.")