It has been ~12 years since I looked at this, but when benchmarking
the Perl 5.8 regexp implementation (which is a modified Boyer-Moore,
if memory serves) it was significantly faster than Java 6's inbuilt
java.util.regex classes.
However, the Perl implementation has pathological special cases that
are rare, but by no means purely theoretical. At this distance, all I
can recall is that it was something to do with multiple | conditions
and backtracking, but the extreme slowdown could be reliably provoked
- and the conclusion we came to was that it was a side effect of the
algorithm's design.
I'm not sure that I have a point here, beyond the usual Caveat Emptor,
but there we are.
Ben