The making of ezRegex

by | 21 Feb, 2026

I built ezRegex because I was tired of writing ugly regex patterns just to search for a few words in any order.

For example, if I ever wanted to find lines containing both carl and paid, I had to type:

carl.*paid|paid.*carl

That’s fine for two words. But with three words, or four? it explodes. With six, it gets ridiculous. I kept hitting this in real projects, and it felt like a problem that should be solved once, properly, with a UI.

Why I made it

I wanted a tool that felt like VS Code search, but smarter:

  • Type terms naturally
  • Toggle match-case and whole-word per term
  • Choose how matching should work
  • Get usable results without hand-crafting regex

The goal was simple: remove regex busywork, keep search power.

The core idea

ezRegex takes your terms and generates the pattern strategy for you.

It supports three modes:

  • Permutations: generates all possible term orders joined with .*
  • Lookahead: builds cleaner patterns like ^(?=.*term1)(?=.*term2).*$
  • Proximity: finds terms within N lines of each other (not something plain regex handles well in workspace-wide search)

That last mode pushed ezRegex beyond “regex generator” into “search workflow tool.”

Tech stack

ezRegex is a VS Code extension built with:

  • TypeScript
  • VS Code Extension API
  • Webview UI in the VS Code sidebar
  • Node.js runtime inside the extension host

It compiles with tsc and runs from out/extension.js.
The panel is activated with onView:ezregex-sidebar, so it feels native in the Activity Bar.

Design choices I cared about

I wanted the extension to be useful in real projects, not just demos.

  • Per-term controls instead of one global setting
  • Inline sidebar results with click-to-navigate
  • Fast-enough workspace scanning with sane exclusions and capped results
  • Automatic fallback to lookahead when permutations become too large

I also made sure the state is persisted, so your terms and mode are still there when you come back.

What I learned

Building ezRegex reminded me that “small dev pain” is often worth solving.
Regex is powerful, but authoring complex patterns manually is not where developers should spend their energy.

The most valuable part wasn’t generating regex strings. It was shaping the whole search experience around how people actually debug code.

Avatar photo

ZioMark

A passionate full-stack developer based in Italy, I specialize in creating innovative digital solutions including Discord bots, RESTful APIs, PHP dashboards, and custom web applications built to last.