ST backwardInitial = bidfa.getBackward().getInitialState();
ST nextMatchStart = stateAfterMatch;
for(int bit = term.nextSetBit(0); bit >= 0; bit = term.nextSetBit(bit+1)) {
final int bit2 = bit;
Function2<ST, IndexedString, ST> addStringBack = new Function2<ST, IndexedString, ST>() {
public ST applyTo(ST st, IndexedString s) {
return ((DFAIndexedString<ST>) s).getBackward().next(st);