I have not yet read this codebase, sorry. But I know people who are not affiliated to the project and are about to use it in production.
PS: Stop using regexes for parsing.
I'm loving this trend :-)
Let's start a monthly "What Araq thinks about X" blog series?
The lexing step is usually sufficiently described by a list of (pattern, action) pairs (maybe with priorization)
re"if\b": keywordIf
re"[A-Za-z_]+[A-Za-z_0-9]*": identifier
re"\d+": number
So it's not the regexes per se that are the problem. The problem comes from the fact that the typical regex library has no support for this setup at all and instead makes you write if|[A-Za-z_]+[A-Za-z_0-9]*|\d+ with no support to distinguish between the different cases.
A different but related problem is that regexes are not used only for the lexing step but also to directly extract data and skipping the parsing step which is terrible for correctness.