A вопрос, на который я ответил, заставлял меня задаваться вопросом:
Как регулярные выражения реализованы в Python? Какие гарантии эффективности существуют? Является ли реализация "стандартом" или она может быть изменена?
Я думал, что регулярные выражения будут реализованы как DFA, и поэтому они очень эффективны (требуется не более одного сканирования входной строки). Лоуренс Гонсалвес поднял интересный момент, что не все регулярные выражения Python являются регулярными. (Его пример равен r "(a +) b\1", который соответствует некоторому числу a, a b, а затем тому же числу a, что и раньше). Это явно не может быть реализовано с помощью DFA.
Итак, повторим: каковы детали реализации и гарантии регулярных выражений Python?
Было бы неплохо, если бы кто-то мог дать какое-то объяснение (в свете реализации) относительно того, почему регулярные выражения "cat | catdog" и "catdog | cat" приводят к различным результатам поиска в строке "catdog" ", как упоминалось в вопросе на который я ссылался ранее.