https://bugs.php.net/bug.php?id=78853 preg_matchは、パターンにマッチした場合は1を、マッチしなければ0を、エラーが発生したらfalseを返します。 ということでこんな正規表現を試してみましょう。 結果 なんだこれ? 2が返ってきました。 仕様が変わったけどドキュメントが更新されてなくて古いのかと思えば英語版にもしっかり"1か0かfalseを返す"と書いてあって、ドキュメントが古いわけでもなさそうです。 PHP7.3から発生するようになったみたいなので、ちょっくら原因でも探ってみるかとソースを覗いてみたのですが、 7.3.0 7.2.24 諦めました。 ちなみにPHP7.0でコンパイルオプションpcre.jitというものが追加され、正規表現にJITを使うようになっています。 このJIT用メモリというのが意外と小さく、たとえば以下の正規表現はpc