山本です。

>>   -e:1: warning: character class has `-' without escape
>
>この警告は [ruby-dev:19956] での判断によるものです。SUSv3 とは異なりま
>す。
>
>>   -e:1: invalid regular expression: /[a--]/
>
>このエラーは a よりも - のほうがコードとして大きいためです。SUSv3 とし
>てはこの挙動は許容されます。
>
>> が一致してない気がします。(File.fnmatchも直さないと・・・)
>
>Ruby は必ずしも全てにおいて SUSv3 に従うわけではありませんから、一致し
>ないこともあります。SUSv3 や他の規格が重要でないわけではないのですが、
>プログラミングに役に立つなどの理由があればあえて変えることもあります。
>誰も指摘しなかったからという以上の意味はなく一致していないこともありま
>すが。

なるほど、よくわかりました。