Processing Regex on input "abbbc monkey" adding state (0, (0, [0])) step 0, next_char = 'a' visiting (0, (0, [0])) adding state (1, (1, [0])) step 1, next_char = 'b' visiting (1, (1, [0])) adding state (1, (2, [0])) visiting (1, (2, [0])) adding state (2, (3, [0])) step 2, next_char = 'b' visiting (2, (3, [0])) adding state (2, (2, [1])) visiting (2, (2, [1])) adding state (3, (3, [1])) step 3, next_char = 'b' visiting (3, (3, [1])) adding state (3, (2, [2])) visiting (3, (2, [2])) adding state (4, (3, [2])) step 4, next_char = 'c' visiting (4, (3, [2])) adding state (4, (4, [3])) adding state (4, (2, [3])) visiting (4, (4, [3])) adding state (5, (5, [3])) visiting (4, (2, [3])) step 5, next_char = ' ' visiting (5, (5, [3])) State Table Dump: State 0: [(0, [0])] State 1: [(1, [0]), (2, [0])] State 2: [(3, [0]), (2, [1])] State 3: [(3, [1]), (2, [2])] State 4: [(3, [2]), (4, [3]), (2, [3])] State 5: [(5, [3])] matched "abbbc"