指数関数的発散(2)

PCREでは、どのように対応しているのか簡単に調べてみた。
問題の起こるパターンと文字列で実行してみると、一秒以内に終了し、戻り値としてMISMATCHではなく、あるエラーを示す値を返してきた。
ソースコードを見ると、マッチング処理を行う再帰的関数match()の中で、関数が呼び出される毎にカウンターをインクリメントして、カウンターの値が10,000,000を超えるとエラーとして終了しているようだ。(10,000,000という値は、検索オプションで変更することもできる)
この方法は、パターンを全く考慮していない。しかし、実際にはこれで十分ということなのだろうか。