partly, you still build Grammars out of "token", "regex" and "rule" definitions, but some things are more natural with one or the other.
So, if you are doing "test if string has whitespace" you'd use a regex, while for "parse an apache log line" you'd probably use a grammar instead of a very nasty regex.
> while for "parse an apache log line" you'd probably use a grammar instead of a very nasty regex.
That's actually a fairly easy endeavor with perl regex capabilities, especially named captures. Parsing HTML, or a programming language, or other much more complex structures is much easier with a grammar. For example, JSON parsing[1].
That said, there are ways to approximate some features of grammars with Perl5 regexes[2].