ezRegex
Build complex regex search patterns visually — no more hand-writing word1.*word2|word2.*word1 by hand.
The problem
Searching for a line that contains both "carl" and "paid" in any order requires typing:
carl.*paid|paid.*carl
With three words it becomes 6 variants. With four words it's 24. ezRegex generates all of that for you.
Preview
Main Interface

Features
Three search modes
Permutations (default)
Generates every possible ordering of your terms joined by .*:
carl.*paid|paid.*carl
Lookahead
Uses lookahead assertions — cleaner for many terms, and the automatic fallback when you add 5 or more:
^(?=.*carl)(?=.*paid).*$
Proximity
Searches your entire workspace for files where all terms appear within N lines of each other — something no regex can easily express. Results appear inline in the sidebar with click-to-navigate.
Per-term options
Each input field has two toggle icons — just like VS Code's own search bar, but applied per term:
Aa — Match Case: only this term is case-sensitive
ab (underlined) — Match Whole Word: wraps this term in \b word boundaries
Mix and match freely: Term 1 can be case-sensitive, Term 2 whole-word, Term 3 plain.
Note for Find / Find in Files: VS Code's native find widget uses a single global case flag. ezRegex sets it to case-sensitive only if all non-empty terms have Match Case enabled. For exact per-term precision, use Search Files or Proximity instead — these use individual regex passes per term.
Inline search results
Search Files searches your entire workspace line by line and shows results directly in the sidebar — no need to open a separate Search panel. Click any result to:
- Open the file at the exact line
- Highlight every matched term in the editor (each term highlighted with its own exact case setting)
Other features
- Add / remove terms — start with 2, add as many as you need
- Live preview of the generated pattern, click to copy
- Find — fires the pattern into VS Code's built-in Find (current file)
- Search Files — searches all workspace files; results appear inline in the sidebar
- Enter in a term field → Find, Shift+Enter → Search Files
Usage
- Click the ezRegex icon in the Activity Bar (left sidebar)
- Type your search terms into the input fields
- Toggle
Aa or ab on any term as needed
- Choose a mode (Permutations / Lookahead / Proximity)
- Click Find, Search Files, or Search Workspace
Example: find lines with both "error" and "timeout"
| Setting |
Value |
| Term 1 |
error |
| Term 2 |
timeout |
| Mode |
Permutations |
| Generated |
error.*timeout\|timeout.*error |
Example: case-sensitive on one term, whole-word on another
| Setting |
Value |
| Term 1 |
Error + Aa (Match Case) |
| Term 2 |
task + ab (Whole Word) |
| Mode |
Lookahead |
| Generated |
^(?=.*Error)(?=.*\btask\b).*$ |
Search Files will match Error exactly (no error) and task as a whole word (not subtask).
Example: find where "payment", "failed", "retry" all appear within 5 lines
| Setting |
Value |
| Term 1 |
payment |
| Term 2 |
failed |
| Term 3 |
retry |
| Mode |
Proximity |
| Within |
5 lines |
Requirements
VS Code 1.56.0 or later.
Extension Settings
No settings required. The panel state (terms, mode, options) is automatically saved between sessions.
Known Limitations
- Search Files and Proximity search read every file in the workspace (excluding
node_modules, .git, dist, out, .next, build). On very large workspaces this may take a moment.
- Results are capped at 500 matches to keep the UI responsive.
- The Find button requires an open editor to focus the find widget.
- The Find button uses a global case flag: case-sensitive only when all terms have Match Case enabled. Use Search Files for exact per-term case matching.
Want to report a bug?
I love fixing bugs, send them over in my discord https://discord.gg/xn5ERtYwWg
Copyright (c) 2026 GoVisionary Srl
All rights reserved.
No part of this software may be modified, redistributed, published,
sold, or used in any manner without the express written permission
of the copyright holder.