It seem most regex engines based their implementation on what had been done in the PERL version, with some implementing a little more, others a little less. This is what generally keeps regexes from being portable across different implementations. This often leads to confusion and syntax errors when you take a canned regex that was designed or tested in a different environment than it will be used. I’ve talked before about knowing the syntax
of the implementation the regex will be used to save yourself the trouble of trying to fix regexes that aren’t incorrect but just written to be supported by a different engine.
There is a new testing tool on the Regexlib. It’s pretty neat and a great improvement over the previous version. However it pretty much targeted for Microsoft regex engines. Realizing not everyone is working in that environment and more importantly allowing myself (and others) a chance to play around with regular expressions using syntax not currently supported correctly or at all by those engines, I’ve found several online regex testers for a variety of languages and platforms.
Please refer to each site’s documentation (if there is any) on what features and advanced syntax is supported. But here is a quick highlight of something one site supports that the other may or may not.
.Net = Named Groups and Look-Behinds
ORO = POSIX syntax
java.utitl.regex = Character Class Subtraction, Possessive quantifiers