They're notoriously difficult to understand, and there have been lots of attempts to support alternatives that are more human readable (these examples include alternatives and Regex wrappers):* https://github.com/VerbalExpressions/JSVerbalExpressions
* https://github.com/Engelberg/instaparse
* https://drup.github.io/2016/08/12/tyre/