環境:ruby 1.8.4 (2005-12-24) [i386-mswin32]
WEBrick使ってるんですけど、特定のホストで例外が起きます。
調べてみると、ホスト名の認識がまずいようで、

URI::parse('http://shacho_soft.at.infoseek.co.jp/diablo_calc/calc.html')

上記のホストで、ホスト名にアンダースコアが含まれてるために host ではなくて registry が設定されてしまい
InvalidURIErro例外が発生します。WEBrick的には HTTPStatus::BadRequest です。

uri/common.rb の↓の部分でアンダースコアが含まれてないから、上手くいかないんだと思うんですけど

DOMLABEL = "(?:[#{ALNUM}](?:[-#{ALNUM}]*[#{ALNUM}])?)"
TOPLABEL = "(?:[#{ALPHA}](?:[-#{ALNUM}]*[#{ALNUM}])?)"
HOSTNAME = "(?:#{DOMLABEL}\\.)*#{TOPLABEL}\\.?"

こういうのって、きっちりRFCにしたがってるんだと思いますが
どうにかして上手く回避する方法はないでしょうか?

たぶん、アンダースコアを含めれば上手くいくんでしょうけど、
この手の問題って、過去に問題になってる気がするので、賢い方法があったら教えてください