A regex tester that cannot freeze your tab
Matching runs in a background worker. A pattern with nested quantifiers - (a+)+ is the classic one - can take exponential time on the wrong input, and in most online testers that locks up the page. Here the worker is stopped after 1.5 seconds and you are told why, which is also a useful warning before that pattern reaches production.
Flags
g finds every match rather than the first; i ignores case; m makes ^ and $ match at line breaks; s lets the dot match newlines; u turns on full Unicode, including \p{L} classes; y anchors each match to where the last one ended.
JavaScript, Python, C# and others
The tester uses your browser’s JavaScript engine. The everyday syntax - classes, quantifiers, groups, anchors, lookahead - behaves the same in Python, Java, C#, PHP and Go. The differences are at the edges: lookbehind support, named-group syntax ((?P<name>…) in Python), and possessive quantifiers. Test those in the target language too.
Replacements
Turn on the replace preview to see the result of a substitution. Use $1, $2 for numbered groups, $<name> for named groups and $& for the whole match. Cleaning up data before an import? The CSV to JSON converter and JSON formatter sit alongside it.

