\s should match whitespace but does not:
FreeBSD 11.0-CURRENT from Sep. 21
joule% echo 'a b' | /usr/bin/grep -E '^a\sb'
joule% /usr/bin/grep --version
grep (GNU grep) 2.5.1-FreeBSD
GNU grep package works:
joule% echo 'a b' | /usr/local/bin/grep -E '^a\sb'
joule% /usr/local/bin/grep --version
/usr/local/bin/grep (GNU grep) 2.20
BSD grep works:
echo 'a b' | /usr/bin/bsdgrep -E '^a\sb'
joule% /usr/bin/bsdgrep --version
bsdgrep (BSD grep) 2.5.1-FreeBSD
BSD grep and base GNU grep both link against /usr/lib/libgnuregex.so.5
A commit references this bug:
Date: Tue Dec 8 14:05:27 UTC 2020
New revision: 368439
src.opts.mk: switch to bsdgrep as /usr/bin/grep
This has been years in the making, and we all knew it was bound to happen
some day. Switch to the BSDL grep implementation now that it's been a
little more thoroughly tested and theoretically supports all of the
extensions that gnugrep in base had with our libregex(3).
Folks shouldn't really notice much from this update; bsdgrep is slower than
gnugrep, but this is currently the price to pay for fewer bugs. Those
dissatisfied with the speed of grep and in need of a faster implementation
should check out what textproc/ripgrep and textproc/the_silver_searcher
can do for them.
I have some WIP to make bsdgrep faster, but do not consider it a blocker
when compared to the pros of switching now (aforementioned bugs, licensing).
PR: 228798 (exp-run)
PR: 128645, 156704, 166842, 166862, 180937, 193835, 201650
PR: 232565, 242308, 246000, 251081, 191086, 194397
Relnotes: yes, please