tailState.addTransition(new PunctuationValueCondition(':'), endState);
tailState.addTransition(subFirstTail, caseState);
tailState.addTransition(new AnyCondition(), startState);
caseState.addTransition(new WordValueCondition("and", false), nonCaseState);
caseState.addTransition(new WordValueCondition("the", false), nonCaseState);
caseState.addTransition(new PunctuationValueCondition(':'), endState);
caseState.addTransition(new PunctuationValueCondition('-'), endState);
caseState.addTransition(new AnyCondition(), startState);
nonCaseState.addTransition(new PunctuationValueCondition('/'), fslashState);
nonCaseState.addTransition(altSubFirstBegin, altTailState);
nonCaseState.addTransition(new AnyCondition(), startState);
altTailState.addTransition(altSubFirstNext, finishAltState);
altTailState.addTransition(new AnyCondition(), startState);
finishAltState.addTransition(altSubFirstTail, endState);
finishAltState.addTransition(new AnyCondition(), startState);
fslashState.addTransition(new WordValueCondition("or", false), orState);
fslashState.addTransition(subSecondBegin, orState);
fslashState.addTransition(new AnyCondition(), startState);
orState.addTransition(subSecondNext, endState);
orState.addTransition(new AnyCondition(), startState);