bin/166842: bsdgrep(1) inconsistently handles ^ in non-anchoring positions

Jim Pryor dubiousjim at
Thu Apr 12 15:37:05 UTC 2012

On Thu, Apr 12, 2012, at 11:14 AM, John D. Hendrickson and Sara Darnell
> Your problem is incorrect so there is no sol'n.
> 	printf 'abc def' | grep -o '^[a-z]'
> is only supposed to match against abc.
> see grep(1) about pattern matching - there is plenty of online writeups,
> esp posix ieee std.  see 
> also "ant / antlr" for more about patterns and matching.
> Jim Pryor wrote:
> > The following reply was made to PR bin/166842; it has been noted by GNATS.
> > From: Jim Pryor <dubiousjim at>
> >  $ printf 'abc def' | grep -o '^[a-z]'
> >  will match against each of the letters in 'abc', but not against any of
> >  the letters in 'def'.
> >  dubiousjim at

Hi John, I'm sorry I didn't describe the problem adequately to prevent
this misunderstanding.
$ printf 'abc def' | grep -o '^[a-z]'
Expected output: a
That is in fact the output I get from Gnu grep.
Actual output on FreeBSD:

The matches against "b" and "c" are incorrect.

dubiousjim at

More information about the freebsd-bugs mailing list