卜部です

Yukihiro Matsumoto さんは書きました:
> まつもと ゆきひろです
>
> In message "Re: [ruby-dev:36753] [Bug #651] Regexp.new returns strange regexp object"
>     on Thu, 16 Oct 2008 03:31:52 +0900, Shyouhei Urabe <redmine / ruby-lang.org> writes:
>
> |以下のような等式が成立しなくなったことに気づきました。
> |
> | % ruby1.9 -e 'p( //u == Regexp.new("", nil, "u") )'
> | false
>
> これは1.9から三番目の引数が無視されることになったせいです。
> そのせいで、Regexp.newが生成したものはUTF-8固定ではなくなっ
> てます。
>
> が、不親切なのは確かなので、
>
>   * -v がなくても警告する
>   * メッセージをobsoleteからignoredに変更する
>
> という対応にしようと思います。

妥当ではないでしょうか。

ruby -Kn -e 'p "\xF0\x80\x80\xBC".match(Regexp.new(".", nil, "u"))'
#<MatchData "\xF0">

あたりは事情を知らないとびっくりします。警告くらいは出てもいいと思います。

> 別の案としては、
>
>   * 'u'対応を復活させる
>
> というものもありえますが。
>   
uとかeはともかくnが欲しいことはあるんじゃないですかねえ。