(This works with --color, too, I'll stick to -o here) `echo foo | grep -o '^[fo]'` should yield a single 'f'. Instead, I get 'f', 'o', and 'o' (each on a separate line). I believe this is a different problem than bug #193043.
this has been fixed already with grep-2.5.3