Okay. Small updates but there is now a warning raised when an entry is not successfully parsed. The warning contains an explicit reason for the failure and the characters involved.
I do not raise an error to keep a behavior similar to BibTeX.
I probably won’t improve the parser for a while due to a lack of time, unless someone files an issue.
Regarding Yacc + Bison, note also the Lerche.jl package which generates a parser from an EBNF specification with tokens specified by regex. Due to precompilation the parsing tables need only be computed once per package installation. Code is a translation of the mature Python Lark package with some Julia optimisations in the hot tokenise / parse loop (3x speedup compared to Python).