conundrumです。
バージョン(リビジョン)に依存する現象なのか否か、気になったので、試してみまし
た。
とみたさんが報告されている現象は、
mswin32版 1.8.2, cygwin版 1.8.3 で同様に発現しました。

自分の正規表現の習熟度は「そこそこ」程度なので、あまり迂闊なことは書けません
が、
「よくばり方」の解釈が異なっちゃうみたいに見えます。

>% ruby -e 'p(/^[\x61-\x7a]+x[0-9]+$/ =~ "hogex111")'
>nil

を、欲張らないように、[\x61-\x7a]+?x にすれば、ちゃんと適合しますね。

自分には、欲張り表現な
>% ruby -e 'p(/^[\x61-\x7a]+[x][0-9]+$/ =~ "hogex111")'
>0
>% ruby -e 'p(/^[a-z]+x[0-9]+$/ =~ "hogex111")'
>0
が、'x'を喰ってしまわずに適合してしまうという解釈、と、'x'を喰ってしまって適
合しないという解釈、
どちらになってもしかたがない(実装次第)のかなって気がします。

_________________________________________________________________
ウィルス駆除も無料の 「MSN Hotmail」  http://www.hotmail.com/