I often think 'right, this time I'm going to write a really nice little Antlr grammar and do it properly'. But every single time I regret it because there's always some complexity that means things don't fit into the Antlr model, and making things work the way Antlr works means more complexity than just writing a simple lexer and parser by hand.
My most recent example is that Ruby strings can't always be safely converted into Java strings, but Antlr wants to parse Java strings only and not a byte[]. So I had to copy my Ruby byte[] into a Java string a character at a time and just use the character as numbers pretending that they had no encoding.
That's just one example. It's always some other new problem that means it's more ceremony to use Antlr than the tool saves me later one.
Despite lexing and parsing being an entire sub-field of computer science, to be honest I'm not sure that in practice lexing and parsing are really problems that are so complex in the first place that a tool is ever needed.