これを 1.8.7 コンソールで実行すると、次のようになります。
$ irb-ruby-1.8.7-p330
1.8.7 :001 > "0a" =~ /\h\h/
=> nil
1.9.2 コンソールで同じものを実行すると、次のようになります。
$ irb-ruby-1.9.2-p290
1.9.2p290 :001 > "0a" =~ /\h\h/
=> 0
:/
これを 1.8.7 コンソールで実行すると、次のようになります。
$ irb-ruby-1.8.7-p330
1.8.7 :001 > "0a" =~ /\h\h/
=> nil
1.9.2 コンソールで同じものを実行すると、次のようになります。
$ irb-ruby-1.9.2-p290
1.9.2p290 :001 > "0a" =~ /\h\h/
=> 0
:/
その通り\h
、標準の Ruby 1.8.7 regexp ライブラリでは認識されないようです。これはRubularを使用して確認できます。追加の gem を使用せずにコードに 1.8 の互換性が必要な場合は、同等の文字クラスを使用するしかないと思います[0-9a-fA-F]
。