Первое о чём стоит сказать - это то что существует 2 больших механизма поиска совпадений:
- НКА - недетерминированный конечный автомат, механизм поиска основан на возвратах. Также важной особенностью является то что подвыражения в регулярном выражении проверяются независимо друг от друга. Поскольку НКА управляется регулярным выражением, автор выражения может определять ход дальнейших событий.
- ДКА - детерминированный конечный автомат, каждый символ в строке проверяется не более одного раза. Т.е. выражение проверяя следующие символы отбрасывает заведомо ложные совпадения и перестает их проверять.