Jim Meyering wrote: > dfa.c's match_mb_charset function *is* used, e.g., in a > command like this one: > > printf '\0' |src/grep -aE '^\s?$' Wow, just it isn't good. I think that behavior of `fails' should be same as of `trans' except `fails' checks accepted conditions, including following part. match_mb_charset() should be avoided as far as possible, as it doesn't support collating symbols and equivalence classes. > /* Falling back to the glibc matcher in this case gives > better performance (up to 25% better on [a-z], for > example) and enables support for collating symbols and > equivalence classes. */ > if (d->states[s].has_mbcset && backref) > { > *backref = 1; > goto done; > }