文字列のcase展開

Caseless matchに対して、以前の実装では実際のmatching処理のときに文字列をcase変換して比較していた。今回の実装では、正規表現コンパイル時点で、文字列を可能なcaseの選択肢の組合せで展開するように変更した。それで特殊な場合を除いては、matching時点でcase変換しなくても済むようになっていた。
コメントに書いてある現象は、文字列が長いと選択肢が指数関数的に増大することが原因で、当然気付くべき問題であった。