Parser combinators have become my preferred "medium hammer" strategy:
Sometimes you get a more readable parser than if you use regex, even though your language is regular.
Sometimes you get corner cases where you have to think and an LR parser generator wouldn't require thinking.
On the other hand, you have one tool that almost always does the job well, is readable, and embeds nicely.
Parser combinators have become my preferred "medium hammer" strategy:
Sometimes you get a more readable parser than if you use regex, even though your language is regular.
Sometimes you get corner cases where you have to think and an LR parser generator wouldn't require thinking.
On the other hand, you have one tool that almost always does the job well, is readable, and embeds nicely.