Matcher findingElements = patternToPullNarrativeElementsIntoGroups().matcher(narrative);
if (findingElements.matches()) {
String inOrderTo = findingElements.group(1).trim();
String asA = findingElements.group(2).trim();
String iWantTo = findingElements.group(3).trim();
return new Narrative(inOrderTo, asA, iWantTo);
}
Matcher findingAlternativeElements = patternToPullAlternativeNarrativeElementsIntoGroups().matcher(narrative);
if (findingAlternativeElements.matches()) {
String asA = findingAlternativeElements.group(1).trim();
String iWantTo = findingAlternativeElements.group(2).trim();
String soThat = findingAlternativeElements.group(3).trim();
return new Narrative("", asA, iWantTo, soThat);
}
return Narrative.EMPTY;
}