backward.state(0).transitions('c', 1, null, 0);
backward.state(1).transitions('b', 2, null, 0);
backward.state(2).transitions('a', 3, null, 0);
backward.state(3, 0).transitions(null, 3);
BiDFA<Character,IntState> bidfa = new BiDFA<Character, IntState>(forward.build(), backward.build());
int blockSize = 3;
RopeBasedIS<?> is = new RopeBasedIS<IntState>(bidfa, "xxxcabccccc", blockSize);
List<Match> matches = newArrayList();
for(Match m : is.getMatches()) {