src/main/java/com/basistech/tclre/Runtime.java
private boolean altdissect(RuntimeSubexpression t, int begin, int end) {
        Dfa d;

        assert t != null;
        assert t.op == '|';

        for (; t != null; t = t.right) {
            assert t.left != null && t.left.machine.states.length > 0;
            d = new Dfa(this, t.left.machine);
            if (d.longest(begin, end, null) == end) {
                return dissect(t.left, begin, end);
            }
        }
        throw new RuntimeException("none matched");
    }
private boolean altdissect(RuntimeSubexpression t, int begin, int end) {
        Dfa d;

        assert t != null;
        assert t.op == '|';

        for (; t != null; t = t.right) {
            assert t.left != null && t.left.machine.states.length > 0;
            d = new Dfa(this, t.left.machine);
            if (d.longest(begin, end, null) == end) {
                return dissect(t.left, begin, end);
            }
        }
        throw new RuntimeException("none matched");
    }
altdissect - determine alternative subexpression matches (uncomplicated)