THE EXPRESSION WORKBENCH
Find the signal.
Test JavaScript regular expressions with live highlighting and exact match offsets. Your text stays in this tab; nothing is uploaded or saved.
Pattern only, without slash delimiters. Up to 2,000 UTF-16 code units. Ctrl/Cmd + Enter to run.
0 / 100,000 UTF-16 code units · kept only in memory
03 / Live highlights
READ ONLYEnter an expression and some test text, or load the sample.
Your matches will light up here.
Teal = matched text · orange tick = zero-width match
A small field guide
\d+ one or more digits · [a-z]+ lowercase letters · ^ start · $ end
Uses your browser’s JavaScript regex engine, not PCRE. Matches do not overlap. Capture groups and replacement previews are outside this tool’s scope.
OPERATOR NOTES
Questions, resolved.
How do I test an expression?
Enter a JavaScript pattern without slash delimiters, paste test text and choose flags. Results update after a short pause, or select Run / retry. Global finds all non-overlapping matches; switch it off for the first match. Load sample provides a working example.
Is my text saved or sent anywhere?
No. Patterns, test text and results stay in this tab’s memory. There are no uploads, analytics, accounts or browser storage, and no permissions are needed. Clear removes working data; refreshing or closing the tab starts fresh.
Why did a run stop, and how do I recover?
Evaluation runs in a disposable worker with a roughly 500 ms watchdog. A timeout means the result is incomplete, not that there are no matches. Simplify the pattern or shorten the text, then select Run / retry. Invalid expressions show an error; edit the pattern to recover. If workers are unavailable, evaluation is disabled instead of running on the UI thread.
What are the limits and what do offsets mean?
Use up to 2,000 pattern and 100,000 test-text UTF-16 code units. At most 1,000 matches are shown, with a notice if more exist. Offsets count UTF-16 code units from zero, with an exclusive end; some emoji use two units. Zero-width matches have equal start and end offsets and an orange marker. Syntax and flag support depend on your browser’s JavaScript engine.