deterministic finite automaton

DFAs compare each character of the input string to the regular expression, keeping track of all matches in progress. Since each character is examined at most once,
the DFA engine is the fastest. One additional rule to remember with DFAs is that the alternation meta sequence is greedy. When more than one option in an
alternation (foo|foobar) matches, the longest one is selected.