У кого есть последняя версия PHP, проверьте, пожалуйста такой bug это работает Код (Text): <?php $s = str_repeat('0', 321).'1'; preg_match("/(?:[^1]|0)*1/", $s, $match); var_dump($match); ?> а это не работает Код (Text): <?php $s = str_repeat('0', 322).'1'; preg_match("/(?:[^1]|0)*1/", $s, $match); var_dump($match); ?> Отличие в длине строки на 1. Для надежности, если второй заработает, вместо 322 нужно поставить 1000 или 2000. Дело в том, что при изменении выражения, пороговое значение плавает. К смыслу этого выражения не докапывайтесь. Изначально оно было другим. Сейчас я его упростил по максимуму, лишь бы проявлялся глюк. В версии 5.2.26 этого глюка нет. В 5.4.17 есть.
о, это очень старый баг. Схватывал его при работе в Zend_Http_Client https://bugs.php.net/bug.php?id=45735