Escribir un analizador para expresiones regulares

Incluso después de años de programación, me da vergüenza decir que nunca he entendido completamente las expresiones regulares. En general, cuando un problema requiere una expresión regular, por lo general (después de varias referencias a la sintaxis) se me ocurre una apropiada, pero es una técnica que uso cada vez más.

Entonces, para enseñarme y entender expresiones regularescorrectamente, He decidido hacer lo que siempre hago cuando intento aprender algo; es decir, tratar de escribir algo ambicioso que probablemente abandonaré tan pronto como sienta que he aprendido lo suficiente.

Con este fin, quiero escribir un analizador de expresiones regulares en Python. En este caso, "aprender lo suficiente" significa que quiero implementar un analizador que pueda comprender completamente la sintaxis de expresiones regulares extendidas de Perl. Sin embargo, no tiene que ser el analizador más eficiente o incluso necesariamente utilizable en el mundo real. Simplemente tiene que coincidir correctamente o no coincidir con un patrón en una cadena.

La pregunta es, ¿por dónde empiezo? No sé casi nada acerca de cómo se analizan e interpretan las expresiones regulares, aparte del hecho de que de alguna manera se trata de un autómata de estado finito. Cualquier sugerencia sobre cómo abordar este problema bastante desalentador sería muy apreciada.

EDITAR: Debo aclarar que mientras voy aimplementar el analizador de expresiones regulares en Python, no estoy demasiado preocupado por el lenguaje de programación en el que están escritos los ejemplos o artículos. Mientras no esté en Brainfuck, probablemente entenderé lo suficiente como para que valga la pena.

Respuestas a la pregunta(5)

Su respuesta a la pregunta