5.9.3 マルチバイト正規表現の文字クラス

ほかのロケールでは並べ替え順が規定されておらず、「[a-d]」は「[abcd]」や「[aBbCcDd]」と同じになる場合もあれば、どの文字にも一致しない場合や、一致する文字の集合が不規則になる場合もあります。括弧式を従来どおりに解釈するには、LC_ALL環境変数を「C」に設定して「C」ロケールを使えます。

# TODO: is there any real-world system/locale where 'A'
#       is replaced by '-' ?
$ echo A | sed 's/[a-z]/-/'
A

解釈はLC_CTYPEロケールに依存します。たとえば、「[[:alnum:]]」は現在のロケールの数字と字母のクラスを意味します。

TODO:照合順序の例を示す。

# TODO: this works on glibc systems, not on musl-libc/freebsd/macosx.
$ printf 'cliché\n' | LC_ALL=fr_FR.utf8 sed 's/[[=e=]]/X/g'
clichX