Regex Flavors Demystified: JavaScript vs Python vs PCRE vs Java

Same pattern. Different language. Suddenly it breaks.

Welcome to the world of regex flavors.

Major Differences

  • JavaScript: No lookbehind, no named groups (until recently), limited Unicode
  • Python: Full lookbehind, named groups, verbose mode
  • PCRE: Conditional patterns, recursion, used in PHP/NGINX
  • Java: Possessive quantifiers, Unicode scripts

Real Example

Pattern: (?<=@)\w+ (lookbehind)

  • JavaScript → Invalid
  • Python/PCRE/Java → Matches domain in email

This Tool Lets You Switch Instantly

Use the dropdown → see how your pattern behaves across engines. No setup. No confusion.

Best Practices

  • Write for your target engine
  • Avoid advanced features unless necessary
  • Test in the actual environment

FAQ

Which flavor should I learn first?

JavaScript — it’s the most restrictive and widely used.

Are regexes standardized?

No. Each engine has its own quirks.

Write once. Test everywhere.