sed and gawk use fastmap in regex, but grep does not. By using fastmap, I expect that grep speeds up for patterns as regex is used. before: $ time -p env LC_ALL=ja_JP.eucjp src/grep '\([a-b]\)\1' k real 7.83 user 7.62 sys 0.07 after: $ time -p env LC_ALL=ja_JP.eucjp src/grep '\([a-b]\)\1' k real 0.46 user 0.38 sys 0.07 However, if grep uses fastmap, fails in case-fold-titlecase test. It means that grep's behavior differ from sed and gawk, as they use fastmap, although it seems to be a bug in regex.