Skip to content
Toova
All Tools

Regex Tester & Debugger

Private by design — runs entirely in your browser

Test regular expressions against sample text in your browser. Toova shows live match highlights, capture group results, replacement output, and explains common errors — all without uploading your regex or your test input.

Live matches and capture groups

Type or paste a regex and a sample, and Toova highlights every match in the text as you type. Hover over a match to see the captured groups, both numbered and named. The match index is shown next to each occurrence, which helps when debugging a regex that catches too much or too little. Toggle flags (global, case-insensitive, multiline, sticky, unicode) and the highlights update instantly.

Replace mode

Switch to replace mode and supply a replacement string. The output panel shows the transformed text in real time. Capture groups are available as $1, $2, named groups as ${name}. This is the right tool for prototyping search-and-replace operations before running them across a codebase or a database column — see the result first, then apply it where it counts.

Browser-only, no upload

Every regex evaluation runs in your browser. The pattern and the test text never leave the page. That matters when you are debugging a regex on production log lines, customer messages, or anything sensitive. The page works offline after first load and the Network tab will stay empty while you test.

Frequently Asked Questions

Which regex flavor does this support?
JavaScript's regex engine, which is also what Node.js uses. That covers most modern web stacks. Lookbehind, named groups, and Unicode property escapes are all supported.
What do the flags mean?
g matches all occurrences (not just the first). i is case-insensitive. m makes ^ and $ match line boundaries. s lets . match newlines. u enables Unicode mode. y makes the regex sticky to a specific position.
Can I see capture group values?
Yes. Hover over any match to see numbered and named capture groups. In replace mode, $1, $2, and ${name} substitute the captured text into the output.
Why is my regex slow on this input?
Usually catastrophic backtracking — nested quantifiers like (a+)+ can blow up exponentially on certain inputs. Toova flags suspicious patterns with a warning before they hang the page.
Is my regex sent to any server?
No. Evaluation runs entirely in your browser. The pattern and test text never leave the page, and there is no logging of either.