It lets you write anything you'd write with normal RegExps, but with a more readable syntax, and it lets you compose sub-expressions into larger patterns.
It also provides helpers like:
- `atomic()` that prevents the engine from backtracking into what you passed as argument. No more ReDOS.
- `bound()` works like `\b` but for arbitrary character sets. E.g. `bound(/[_\p{L}\p{Number}]/u)` is a Unicode-aware `\b`
- Set operations on character classes: `charSet.intersection(/\p{Lowercase}/u, /\p{Script=Greek}/u)` will only match lower case greek letters
I hope you'll find it useful!