Даже после многих лет программирования мне стыдно говорить, что я никогда не понимал полностью регулярные выражения. В общем случае, когда проблема вызывает регулярное выражение, я обычно (после связки синтаксиса) придумываю подходящую, но это метод, который я часто использую.
Итак, чтобы правильно научить себя и правильно понимать регулярные выражения, я решил делать то, что я всегда делаю, пытаясь чему-то научиться; т.е. попытайтесь написать что-то амбициозное, что я, вероятно, покину, как только почувствую, что я достаточно научился.
С этой целью я хочу написать парсер регулярного выражения в Python. В этом случае "узнать достаточно" означает, что я хочу реализовать парсер, который полностью может понять синтаксис расширенного регулярного выражения Perl. Однако он не должен быть самым эффективным парсером или даже обязательно использоваться в реальном мире. Он просто должен правильно совпадать или не соответствовать шаблону в строке.
Вопрос: с чего начать? Я почти ничего не знаю о том, как регулярные выражения анализируются и интерпретируются отдельно от того, что он каким-то образом связан с автоматом конечного состояния. Любые предложения относительно того, как подойти к этой довольно сложной проблеме, будут высоко оценены.
EDIT: Я должен уточнить, что, хотя я собираюсь реализовать парсер regex в Python, я не чрезмерно суетился о том, на каком языке программирования были написаны примеры или статьи. это не в Brainfuck, я, вероятно, пойму, что это будет стоить моего времени.