Переполнение буфера для preg_match свыше 100 000 символов не сработало, или это было исправлено или я не так что-то делаю. Хотя это не просто переполнение буфера, это превышение лимита попыток рекурсии, например в php.ini файле есть такая настройка pcre.recursion_limit которая обычно равна 100 000. Возможно я неправильно формировал строку для вызова рекурсивного поиска, надо почитать еще раз... про то как работает рекурсия в шаблонах
Сам уже трое суток сижу над решением таска, с короткими перерывами на пожрать/поспать. Главное не сдаваться.