Notes from the engine room
RegexPilot runs your pattern on the real regex engine of the language you target. Building that meant finding out — the hard way — exactly where those engines disagree. These are the field notes. The raw data behind them lives at /divergences.
You'd expect \h to match spaces. In Ruby, it matches hex digits.
Ruby's \h matches hex digits and nothing else. In PCRE — what most online regex testers run — the same two characters mean horizontal whitespace. Why that ships bugs, and what it took to embed the real Onigmo engine.
August 19, 2026 · 4 min read
When a tool says “Python regex”, ask which one
Python has two regex engines — the stdlib re and the PyPI regex module — and one pattern can return three different answers between them. Verified examples.
August 19, 2026 · 3 min read
GraalVM native-image can only build for the machine it's running on
Producing a universal macOS binary with an embedded java.util.regex engine takes two GraalVM installs, two undocumented flags, and one CI lesson about flags that look like noise.
August 19, 2026 · 4 min read
Java's . is not [^\n]
A regex transpiler emitted a rewrite that looks obviously correct and isn't. Why translation tells you what to send, and only execution tells you what happens.
August 19, 2026 · 9 min read