fix: lazy quantifier backtracking in regex engine
The backtracking engine's find() method set a `disable_lazy_backtrack` flag that prevented lazy quantifiers (*?, +?, {m,n}?) from trying more than the minimum matches. This caused patterns like `\$t\((.*?)\)` to fail entirely instead of finding minimal matches.
Fixes:
- Remove `disable_lazy_backtrack` flag that broke lazy quantifier semantics
- Enhance `collectAllMatches` to recurse through concat/group/alternation nodes
- Add `matchNodeConstrained` to correctly re-set captures when trying
different quantifier positions
- Fix capture offset bug in `findAll` for backtracking engine (positions
were relative to sliced input but used as indices into full input)
- Re-enable lazy quantifier test suite and fix expectations to match
standard regex semantics
Closes #1 C
Chris committed
2f00cac338a764de5ca8a7def4eb87f320e0c46c
Parent: 58d5940