<20020402044204.239DF783 / helium.ruby-lang.org>から
> > 全部の組み合わせを考えた結果、
> > (?:a+)?, (?:a*)??, (?:a+)??の三個が意味のある組み合わせだと思います。
> > 
> > 他の組み合わせは、
> >   組み合わせても意味が変わらない
> >   意味は変わるが、もっと効率のよい書き方がある
> > のどちらかになると思います。
> > 
> > 勘違いしているかもしれませんが。
> 
> すいません。
> (?:a+?)?もありました。

(?:a?)+?もありました。

前のメールに間違いがあったので整理すると、
繰り返し演算子(?, *, +, ??, *?, +?)のネストは、
(?:a?)+?, (?:a+?)?, (?:a+)??のどれかか、一個の
繰り返し演算子に還元できる。
--
小迫@ソフネック   渋谷区恵比寿1-15-1