成瀬です。

Tanaka Akira wrote:
> 挑戦しないようにするには、そんなところで分割しないようにすれ
> ばいいわけで、
> 1. [^()]+ 同士が隣接しないようにパターンの構造を変える、
> 2. 直後が括弧であると先読みで指定する、
> 3. バックトラックを抑制する、
> といった方法があります。

思った以上に簡単に抑制できるのですね、参考になります。

ところで、3のバックトラックを抑制する方法ですが、
nested_parentheses =
  /(?<pare>   \( ([^\(\)]++ | \g<pare>)*+ \)  )/x
nested_parentheses =~ "((a))"
のように *+ とすると core を吐きます。

-- 
NARUSE, Yui  <naruse / airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA