A regex101 alternative that runs your pattern in the real engine

regex101 is better than this at almost everything: the token-by-token explanation, the debugger, the quick reference, saved patterns with test cases. There is one thing it does that catches people out, and it is a consequence of how good it is - it supports several flavours, and the one it starts on is not the one in your browser.

Open the Regex Tester →

regex101 and Softland, side by side

 regex101Softland
Regex flavourPCRE, Python, Go, Java, JavaScript and moreJavaScript only - the engine actually running the page
Pattern explanationToken by token, with a reference panelNone
Step debuggerYesNo
Live match highlightingYesYes, as you type
Saving and sharing a patternYes, with a permanent linkNothing is stored

The flavour you test in should be the flavour you ship in

Regular expression syntax is not one language. Lookbehind, named groups, possessive quantifiers, atomic groups, recursion, the meaning of a dot in multiline mode, whether \d matches digits outside ASCII - all of these vary between engines. A pattern that is correct under PCRE can be a syntax error in JavaScript, or worse, can be valid in both and match different things.

This tester compiles your pattern with the JavaScript engine running the page, so it fails in exactly the way your code will fail and matches exactly what your code will match. If you are writing for a browser or for Node, testing against anything else is testing an approximation of your problem.

Why your pattern only found the first match

Almost always the global flag. Without it a regex stops at the first match, which is what most people want when validating and never what they want when extracting. The neighbouring confusion is the multiline flag, which changes what the anchors mean rather than what the dot matches - and the dotall flag, which changes what the dot matches rather than what the anchors mean.

Seeing every match highlighted at once makes the flag question answer itself. If exactly one region is lit up in a body of text that clearly contains several, that is a missing global flag rather than a wrong pattern, and no amount of rewriting the expression will fix it.

A pattern can hang the tab, and that is worth seeing

Nested quantifiers over alternation - the classic shape being a group that can match the same text several ways, repeated - can make an engine explore an exponential number of paths before it concludes there is no match. On a short string it is instant. On a two hundred character string it never finishes.

Running in the real engine means you meet that behaviour here rather than in production, where the same pattern applied to user-supplied input is a denial of service waiting to be discovered. If a pattern freezes this page, it will freeze your server, and the fix is to rewrite the expression rather than to raise a timeout.

When regex101 is the better choice

  • You are writing for PCRE, Python, Go, Java or .NET - test in the flavour you will ship in, which for you is not this one.
  • You want the explanation pane that names every token in a pattern you inherited, which is the fastest way to understand someone else regex.
  • You need the step debugger to see where a pattern gives up on a string.
  • You want to save a pattern with test cases and send a colleague a link to it.

Frequently asked questions

Which regex flavour does this use?
JavaScript, because it uses the engine in the browser rendering the page. That is an advantage if you are writing JavaScript and a reason to test elsewhere if you are not.
Why does my pattern only find the first match?
The global flag is missing. Without it the engine stops at the first match. With it you get every match, which is what you want whenever you are extracting rather than validating.
Why does my pattern not match across lines?
Two different flags are involved. Multiline changes the anchors so they match at each line break rather than only at the ends of the string. Dotall changes the dot so it matches a newline. People reach for the first when they need the second.
Is my test data uploaded?
No. The pattern and the sample text stay in the page, which matters more than it sounds - regex testing usually means pasting a real log line or a real payload.

Try it yourself

Test a regular expression against sample text, live.

Open the Regex Tester

regex101 is a trademark of its respective owner. Softland is not affiliated with, endorsed by or sponsored by regex101. This comparison reflects how each product works rather than what either costs, because pricing and plan limits change; check regex101’s own site for its current terms.