まつもと ゆきひろです

In message "[ruby-list:26572] Re: Regexp.new のオプション"
    on 00/12/17, WATANABE Hirofumi <eban / os.rim.or.jp> writes:

|"n" は真だから, そこに文字列を指定しても無意味です.
|    if (argc >= 2) {
|        if (FIXNUM_P(argv[1])) flag = FIX2INT(argv[1]);
|        else if (RTEST(argv[1])) flag = RE_OPTION_IGNORECASE;
|    }
|なぜかこうなってるのかといえば歴史的理由からなんですけど,

一応、エンコーディング指定と正規表現自身のオプション指定を分
けたかったというのはあります(さっき思い出した)。

将来、n, s, e, u 以外のエンコーディングを扱うようになった日
に、第3引数に名前で指定するのが良かろうと思います。

それはそれとして

|今となっては
|  Regexp.new(string[, option[, code]])
|で option は
|  true なら ignore case
|  Fixnum ならマニュアルのとおり
|  文字列なら i, x, p, n, e, s, u 全部受け付ける
|ようにすると混乱がない気がしますね.

というようなのはあっても良いと思いますが。

                                まつもと ゆきひろ /:|)