えぐち@エスアンドイー です。

もとのメッセージはもっと長いですが、一部分に反応します。

>>> In message [ruby-dev:8378] Re: Regexp <=> 
    On Fri, 19 Nov 1999 18:34:33 +0900, Kazuhiro Nishiyama <nishiyama / mx1.tiki.ne.jp> said:

nishiyama> こんばんは、ZnZです。
nishiyama> 
nishiyama> On [Thu, 18 Nov 1999 23:24:31 +0900]
nishiyama> EGUCHI Osamu <eguchi / shizuokanet.ne.jp> wrote:
	...
nishiyama> > 今日はじめて Regexp#== の存在を知りました。
nishiyama> > 
nishiyama> > でも、
nishiyama> > 
nishiyama> >     % ruby -e 'p /abc/ == /abc/'
nishiyama> >     true
nishiyama> >     % ruby -e 'p /[ba]/ == /[ab]/'
nishiyama> >     false
nishiyama> > 
nishiyama> > これってあんまり嬉しくないかも、、
nishiyama> > #、、といって正規表現の一致/不一致を真剣にやろうとすると
nishiyama> > #rc.c と regx.c を大解析しなければ行けないので、、ムニャムニャ
nishiyama> 
nishiyama> /(?i)e/ == /e/i
nishiyama> /[eE]/ == /(e|E)/
nishiyama> とか厳密にやるのは無理(NP完全?)のような気が。

(私の印象ですが、) NP完全とは言えないと思います。
適切な正規化則さえ定義すれば、同じパターンにマッチする正規表現は、
1つの form に還元されると思います。
#ブール代数式を加法標準形に直すのと同じ要領。

ただ、この『正規化則』ったのが厄介で、regex の内部表現の変形を
サクッっと出来なければ行けませんね。
#これするぐらいなら、 regex をスクラッチから書き直す方が楽?

気分的には 

	/abc/ | /xyz/ => /abc|xyz/

が出来る Regex#| とかあれば、無理に一個の正規表現リテラルに
表現する必要がなくって、スクリプトを書く時に楽かなと思います。
#正規表現の最適化出来そうだし。。。

	えぐち