>>606
UnixUtilということなんではずしているかもしれないんで参考程度に。
今の grep は localeの設定を見てて、文字クラスの中の並びもそれに従ってる。

>grep '[a-z]' hoge でマッチすると、小文字の a-zと、大文字の A〜Y がある行にマッチしてしまう。 
>grep '[a-b]' hoge でマッチすると、大文字の a-bと、大文字の A がある行にマッチしてしまう。 

これは、en_US.utf-8 のような localeのときのアルファベットの並びが
aAbBcCdD ... zZ と定義されてるから。
ABC...XYZabc...xyz じゃないのよ。

これがいやなら、POSIX の文字クラスの [:upper:] とか [:lower:] を使ってのが
実装している連中の言い分らしい。