QuickATools

Developer Tools · Free browser tool

Regex Tester

Test and debug your regular expressions in real-time with live syntax highlighting, group captures, and flag toggles.

Regular expression

Pattern between slashes · flags toggle on the right.

g
g Global — find all matchesi Ignore casem Multiline — ^/$ per line
Valid pattern/\b(\w+)@(\w+)\.(\w+)\b/g3 matches

Test string

Paste the text you want to match against.

107 characters

Highlighted matches

Matching regions are marked in amber below.

Contact us at hello@example.com or support@quickatools.com. Also try BAD@EMAIL (no TLD) and alice@site.org.

Match details

3 results
#MatchIndex$1$2$3
1hello@example.com1431helloexamplecom
2support@quickatools.com3558supportquickatoolscom
3alice@site.org92106alicesiteorg

Frequently Asked Questions

What do the g, i, and m flags actually do?

The g (global) flag finds every match in the string instead of stopping after the first one. The i (ignore case) flag makes the pattern case-insensitive, so /hello/i matches "Hello" and "HELLO". The m (multiline) flag changes how ^ and $ behave — with m on, they match the start and end of each line rather than only the start and end of the entire string. Toggle them live in this tool to see the difference immediately.

What's the difference between a match and a capture group?

A match is the full substring that satisfied your pattern. Capture groups are the pieces of that match you intentionally "saved" by wrapping parts of the pattern in parentheses — for example, /(\d{4})-(\d{2})-(\d{2})/ matching "2026-08-07" produces one match ("2026-08-07") and three capture groups ($1 = "2026", $2 = "08", $3 = "07"). Capture groups are what you use in replacements or when extracting structured fields from text.

How does JavaScript's RegExp engine differ from other regex flavors?

JavaScript uses a flavor based on ECMAScript, which supports lookarounds, named groups, and Unicode property escapes (with the u flag), but does not support some features found in PCRE or .NET such as recursive patterns or possessive quantifiers. Patterns you test here behave exactly the way they will in browser or Node.js code — so if a pattern works in this tool, it will work the same way in your JavaScript application.

Is it safe to test regexes against real source code or sensitive data here?

Yes. Pattern compilation, matching, highlighting, and report generation all run locally using the browser's built-in RegExp engine — nothing you paste is uploaded, logged, or sent to a server. That makes it safe to debug signup-form validation patterns, log-parsing rules, or redaction regexes against real (even sensitive) sample text without exposing that text to a third-party service.

Why Live Regex Feedback Beats Guess-and-Reload Debugging

Regular expressions are dense by design — a missing escape, a greedy quantifier, or the wrong flag can silently match the wrong thing (or nothing at all). Debugging them by pasting into production code and reloading is slow and risky. A live tester that highlights every match and shows each capture group as you type collapses that feedback loop to milliseconds, so you can see exactly what ^, $, or a nested group is doing before the pattern ever ships.

That feedback also matters for security-sensitive rules. Signup form validators, log redaction patterns, and content filters often get tested against real sample data — emails, phone numbers, or fragments of user input. Sending that text to a third-party regex playground means trusting their server with content you may not want to leave your machine. This tool never uploads anything: pattern compilation, matching, highlighting, and the match report all run through the browser's built-in RegExp engine.

Because the engine is the same ECMAScript implementation your browser and Node.js use, a pattern that works here will behave the same way in your JavaScript application — including how flags like g, i, and m change matching, and how capture groups are numbered. Use the amber highlight pane to spot unintended matches, and the match table to verify that $1, $2, and friends extract the fields you expect.

Need to tidy sample JSON before testing a parse rule? Use the JSON Formatter & Validator . Decoding an encoded token first? Try Base64 Encode/Decode . Generating fixture IDs for a test suite? The UUID/GUID Generator runs just as locally as this tool.