ALL DEVELOPER TOOLS56
Regex Tester
Regex Tester — Real-Time Match Highlighting
Enter a regex and test string to see matches and capture groups highlighted in real time.
About Regex Tester
Regular expressions are one of the most powerful tools in a developer's toolkit, but their terse syntax makes them notoriously tricky to write and debug. This tool provides a real-time testing environment where you enter a regex pattern and a test string, and immediately see all matches highlighted directly in the text. Capture groups are listed under the text, each row labeled with the match and group number it came from alongside the captured value — essential for understanding complex patterns with multiple captures. Five JavaScript flags are one-tap toggles: global, case-insensitive, multiline, dotAll, and unicode, so you can quickly see how each one changes your matches. Evaluation runs in a worker under a hard timeout, so a catastrophically backtracking pattern cannot freeze the tab. Use it to build and verify patterns for form validation, log parsing, data extraction, search-and-replace operations, and any text processing task. Common patterns include email validation, URL matching, date extraction, and parsing structured log lines. The real-time feedback loop dramatically speeds up regex development compared to running test code repeatedly.
Questions
Which regex flavor does this use?
It uses JavaScript's built-in RegExp engine, which follows the ECMAScript specification. This is the same regex flavor used in Node.js, browsers, and most JavaScript frameworks.
What do the flag buttons mean?
g = global (find all matches), i = case-insensitive, m = multiline (^ and $ match line boundaries), s = dotAll (. matches newlines), u = Unicode.
Can I use named capture groups?
Yes. JavaScript regex supports named groups via (?<name>...). The matched group appears in the results panel labelled with its name, alongside numeric capture groups.
Why did I get a 'pattern took too long' error?
Your pattern likely triggers catastrophic backtracking — nested quantifiers like (a+)+$ can take exponential time against a non-matching string. Evaluation runs in a background worker with a 2-second cap, so the runaway pattern gets stopped instead of freezing the tab; rewrite it to avoid a quantifier inside a quantifier.
Can I do find-and-replace here?
No — this is a tester, so it highlights matches and lists capture groups but never rewrites the text. You can copy every match with 'Copy all hits', which puts one match per line on your clipboard.
Is my file uploaded to a server?
No. Transmute processes everything locally in your browser using JavaScript and WebAssembly. Your files never leave your device — there is no server, no upload, no cloud processing.