One of the coolest parsing libraries I've ever seen doesn't require a separate lexing phase, but IIRC it kinda supports something similar in the form of regex tokens: https://github.com/engelberg/instaparse
I love that supporting left recursion allows you to avoid contorting what would otherwise be the most obvious grammar definition.
Yep! That flexibility runs through Instaparse. Overall, it's so flexible that you can literally copy and paste an EBNF grammar in from a standards document, and it will hand you back a parser. I love it.