The million dollar question is…
Should a construction which consists of a simple option like “ABBB” | “CBBB” have a parse table that compresses and merges the last sequence of states into common groups?
In the same way that the start sequence is merged in “ABCDEZ” | “ABCDEX” This testcase demonstrates a clear reason for having the terminating state objects.
How about something like “ABBB” | “CBB”
I must sleep and ponder on the practicality. It would result in a more compressed parse table.. but at what cost?