Does GNU grep's -o option ignore zero-length matches?
My GNU grep man page says the following:
-o, --only-matching
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
emphasis is mine
I'm guessing it considers the end of line match to be an "empty match"