From Mastering Regular Expressions 3e:
As a result, broadly speaking, there are three types of regex engines:
- DFA (POSIX or not—similar either way)
- Traditional NFA (most common: Perl, .NET, PHP, Java, Python, . . . )
- POSIX NFA
From the Theory of Computation: Formal Languages, Automata, and Complexity:
For each NFA, there is a DFA that accepts exactly the same language.
Can I argue that NFA and DFA are the same thing? Or even though their ability to recognize patterns are equivalent, but they are still different in some way?