Class Split

Branch the graph, providing alternative matches for the current context
(eg via backtracking on failure).

label is a string for display (since this node represents many
different parts of a regexp, like | and *).

lazy is used during graph construction.

next contains the alternatives, in ordered priority (next[0] first).
There should be more than 1, but only | should give more than 2.
However, the number of alternatives is not something the engine should
assume (I may be wrong, or there may be a "bug" that generates a single
entry in some cases, for example).