Las expresiones regulares clásicas son equivalentes a autómatas finitos. La mayoría de las implementaciones actuales de "expresiones regulares" no son estrictamente expresiones regulares, pero son más poderosas. Algunas personas han comenzado a usar el término "patrón" en lugar de "expresión regular" para ser más precisos.Expresividad de lenguaje formal de patrones Perl
¿Cuál es la clasificación de lenguaje formal de lo que se puede describir con una "expresión regular" moderna como los patrones admitidos en Perl 5?
Actualización: Por "Perl 5" me refiero a la funcionalidad de coincidencia de patrones implementada en Perl 5 y adoptada por muchos otros lenguajes (C#, JavaScript, etc.) y no nada específico de Perl. No quiero considerar, por ejemplo, los trucos para incrustar el código Perl en un patrón.
En realidad, "expresiones regulares" es el término preferido para estos híbridos mutantes; "patrón" no transmite suficiente información. En Perl 6 han sido reemplazados por "Reglas" (que se pueden ensamblar en "Gramáticas"), pero "regex" todavía se acepta, también. –