── RegexTokenizer ──────────────────────────────────────────────────
Pre-tokenization via a user-supplied ECMA-style regular expression.
Every match is emitted as a chunk (non-matching spans are dropped).
Pattern is captured by value at construction time so the
std::regex instance is reusable across encode calls.