Windows 環境の XAMPP で再現を確認。
((?>(?=\(\()(?R)|(?!\)\)).)*) # (1) note bodyにlib/make_link.phpの注釈用パターンを差し替えると、FormattingRulesを書き換えなくても回避できてるっぽいです。他の環境(特に、使える正規表現が限定的な古いPHPとか)でも問題なく動くのか~のチェックがまだ不十分ですが、取り急ぎ報告を。 -- 2015-03-19 (木) 21:27:57
((?:(?R)|(?!\)\)).)*) # (1) note bodyとなっていますね。"(?R)" は再帰で、言明(assertion)とは正規表現の用語なのですね。難しい・・・ 注釈に再帰が必要なのか?とも思いますが過去の議論を見るとネストする前提で実装されているようです -- umorigu 2015-03-24 (火) 01:50:44
<?php $string = "((12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234))"; preg_match('/\(\(((?:(?R)|(?!\)\)).)*)\)\)/x', $string); echo "SUCCESS"; ?>
<IfModule mpm_winnt_module> ThreadStackSize 8*1024*1024 </IfModule>とするといいかも知れません。