Ha comenzado la fase de votación del RFC PREG_THROW_ON_ERROR, anunciada por su autor Osama Aldemeery en la lista internals de PHP tras un período de discusión sin cuestiones abiertas. La votación cierra el 18/09/2026 a las 17:00 UTC. El RFC está en wiki.php.net/rfc/preg_throw_on_error y la implementación en el pull request 22797 de php-src.

La propuesta añade un flag opcional PREG_THROW_ON_ERROR. Al pasarlo a cualquier función de coincidencia preg_*, cada error PCRE registrado por la llamada se lanza además como \PregException. El código y el mensaje de la excepción coinciden exactamente con preg_last_error() y preg_last_error_msg(). Las llamadas sin el flag se comportan igual que hasta ahora.

Tim Düsterhus votó en contra aunque está de acuerdo con el concepto general. Se opone a mantener un Warning en los errores de compilación: al ser una funcionalidad nueva y opt-in, no hay restricciones de retrocompatibilidad, y la garantía de que $e->getMessage() sea igual a preg_last_error_msg() empobrece la funcionalidad. La excepción debería incluir toda la información necesaria.

También critica que las excepciones lanzadas dentro de callbacks de usuario no se envuelvan. En su opinión deberían convertirse en una \PregException con la excepción original como $previous. De lo contrario, sigue haciendo falta un catch(Exception) alrededor de cada llamada preg_, lo que anula gran parte del beneficio de tener una clase de excepción dedicada. Además, señala que esto contradice la política de throwables de PHP, que exige envolver las excepciones de funcionalidad externa y establecer $previous.