Regex101
Replaceable in one session with an AI coding agent.
A regular expression tester with a live explanation of what each part matches, a debugger that steps through the match, and saved patterns with a shareable link.
Build me a regular expression tester: a pattern, some text, live matches, and an explanation of what each part is doing. STACK - One static page. No server, no build step, no framework - The browser's own regular expression engine for the JavaScript flavour - A small parser of your own for the explanation pane — you are describing the pattern, not executing it MATCHING - Highlight every match in the test text as you type, with capture groups tinted differently and named groups labelled - A list of matches beneath: index, full match, and every group by number and name - Flags as checkboxes with what each one does written beside it, because half the confusion in this subject is a missing `m` or `s` - Substitution in its own pane, with `$1` and `$<name>` working, so replace can be tested rather than guessed THE EXPLANATION, WHICH IS THE PRODUCT - Parse the pattern into a tree and describe each node in plain words: 'one or more digits', 'a word boundary', 'a group that captures', 'this or that' - Hovering a part of the pattern highlights what it matched, and hovering a match highlights the part that matched it. That two-way link is what makes the tool teach rather than merely report - Quantifiers described precisely, including greedy against lazy — 'as many as possible' against 'as few as possible' — because that distinction is behind most patterns that nearly work THE THING THAT DESERVES A WARNING - **Catastrophic backtracking.** A pattern like nested quantifiers over an alternation can take exponential time on a string that merely nearly matches, and on a server that is a denial of service from one request. It is a real vulnerability class, not a curiosity - So: run the match with a time limit, in a worker, and if it does not finish, say so and name the construct responsible rather than freezing the page - Flag the shapes that cause it — a quantified group containing another quantifier, an alternation with overlapping branches — while the pattern is being written - If you show a step count, that number is the honest measure of a pattern's cost and is more useful than any timing FLAVOURS, HONESTLY - JavaScript runs in the browser for free. PCRE, Python, Go and the rest genuinely differ — lookbehind support, named group syntax, how `.` treats newlines, whether `\d` is Unicode-aware - Either run each one properly on a server, or support one flavour and say clearly which. **Do not pretend one engine is another**: a pattern that works here and fails in production is worse than no tester - If you do run others server-side, every one is untrusted input executing a regular expression: a hard timeout, a separate process, and a memory cap SAVING AND SHARING - The pattern, the flags and the test text in the URL, so a link carries the whole case. That is how a pattern gets reviewed by somebody else - A local library of saved patterns, exportable as JSON - **Test cases beside the pattern**, each with the expected result, and a pass or fail. A regular expression with a test suite is a regular expression somebody can change safely a year later WHAT MATTERS MOST The explanation pane and the backtracking guard. The first is why anybody opens the tool; the second stops the tool hanging on exactly the patterns that most need explaining.
What you lose
- An explanation pane that names every token as you type, which is how people actually learn the syntax
- A step debugger showing where a pattern backtracks, which is the only way to understand a slow one
- Several engine flavours side by side, each with its own real differences
- A URL that shares a pattern and its test cases together
If you would rather not build
- The browser console, honestly, for a quick check
- A test file with cases, which is what a pattern in production should have anyway
The escape hatch
open source · no votes, no paid placement
regexpp
$0A regular expression parser and visitor, which is what an explanation pane needs.
eslint-community/regexppfree · open source
regexper
$0Renders a regular expression as a railroad diagram.
javallone/regexper-staticfree · open source
Why this verdict
our own opinion · changed only by a person
89/100
Verdict yes at 89: a static page with a parser. The catastrophic backtracking guard is the part that is neither obvious nor optional, and it is also a genuine security lesson.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Questions about Regex101
answered from the record above
Is Regex101 free?
No — the plan we track is $5 a month. Free to use; a supporter tier from around $5/month removes limits and adds private saved patterns.
Can you replace Regex101 by building your own?
YES. Replaceable in one session with an AI coding agent. Replacement score 89 out of 100, build time one session. Read what you lose before you decide.
How much does Regex101 cost?
$5 a month on Supporter — $60 a year. Recorded 14 Aug 2026.
What do you lose by replacing Regex101?
An explanation pane that names every token as you type, which is how people actually learn the syntax; A step debugger showing where a pattern backtracks, which is the only way to understand a slow one; Several engine flavours side by side, each with its own real differences; A URL that shares a pattern and its test cases together. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Regex101?
Yes: regexpp, regexper. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

