What regex flavour does this use?
The Regex Tester uses the browser's native JavaScript RegExp engine. This means it supports all standard ES2024 features including named capture groups, lookbehind assertions, and the /v (Unicode sets) flag.
Live regex testing with match highlighting, capture groups and flag controls, plus a .NET compatibility checker.
Updated
Loading Regex Tester…
Loading Regex Tester…
The ByteKiln Regex Tester runs your pattern against the test string using the browser's native JavaScript RegExp engine. Results update live as you type.
Every match is highlighted in the preview panel. Non-matching text is shown in muted colour so the matched regions stand out at a glance.
Each result card shows the full match, its index position in the string, and the value of each capture group. Named groups ((?<name>…)) are shown with their label.
A small tokenizer reads the pattern, with escapes and character classes respected so \( and [(?<=] are not misread, and flags constructs that are .NET only, JavaScript only, unsupported by both, or that behave differently. Examples are variable-length lookbehind, balancing groups, Unicode \d, $ before a final newline, and group numbering. It checks RegexOptions combinations: ECMAScript is only legal with IgnoreCase, Multiline and Compiled. It also previews a replacement using .NET's $1 / ${name} rules.
The toolbar includes ready-made patterns for email addresses, URLs, IPv4 addresses, ISO dates, and hex colours — click any to load it immediately.
Short answers for the things developers usually ask before trusting a tool.
The Regex Tester uses the browser's native JavaScript RegExp engine. This means it supports all standard ES2024 features including named capture groups, lookbehind assertions, and the /v (Unicode sets) flag.
The flags control how matching works: g (global) finds all matches instead of just the first, i (case-insensitive) ignores letter case, m (multiline) makes ^ and $ match line boundaries, s (dotAll) makes . match newlines, and u enables full Unicode mode.
Often, but not always. .NET supports things JavaScript doesn't, such as atomic groups, balancing groups, (?'name') and \A or \z. It numbers unnamed groups before named ones. Its \d and \w match Unicode digits and letters unless you set RegexOptions.ECMAScript, and its $ also matches before a final newline. Replacements use $1 and ${name}, not \1 or $<name>. The .NET compatibility panel flags each of these in your pattern and gives the C# line to paste.
Each match card in the results panel shows numbered capture groups (Group 1, Group 2…) and named groups in quotes. Named groups use the (?<name>…) syntax.
No. Matching runs in the page with JavaScript's native RegExp engine; the pattern and test string are not sent to a server.
The most common cause is a missing g flag — without it, only the first match is found. Also check that backslashes are properly escaped: in the pattern field, \d means a digit, but if you type literally \d you may need to check the input. The error message beneath the pattern field pinpoints invalid syntax.
Useful follow-ups when one conversion usually turns into three more.
Format, validate, and minify JSON instantly with a browser-first editor.
Encode special characters for URLs or decode percent-encoded strings safely.
Format and validate YAML, or convert between YAML and JSON. Essential for Kubernetes, Docker, and CI configs.
Want the background and worked examples? There's a longer write-up.
Read the Regex Tester guide