preg_match の限界

たとえばこんな正規表現があるとして

preg_match( '/%%%((?:.|\n)+?)%%%/', $text, $matches );

括弧内($matches[1])の文字数が2010バイト辺りを超えると、エラーが出て、エラーの表示もできずに次のページを表示できなくなるようだ…(おそらくApacheを引き連れて落ちている)結構ありがちな正規表現なんで怖い。ちなみに

preg_match( '/%%%([^\x00]+?)%%%/', $text, $matches );

とかなら問題なさげ。なぞだ。