docs: protected List<Integer> getAllAcceptedStates(CharSequence text, int startIndex){
  		List<Integer> states = new ArrayList<Integer>();
  		int lastAcceptedState = -1;
  		
  		int p = runAutomaton.getInitialState();
  		int l = text.length();
  		for (int i = startIndex; i < l; i++) {
  			p = runAutomaton.step(p, text.charAt(i));
  			if (p == -1) {
  				if (lastAcceptedState == -1){
  					return null;
  				}else{
  					break;
  				}
  			}
  			if (runAutomaton.isAccept(p)){
  				states.add(p);
  				lastAcceptedState = p;
  			}
  		}
  		if (states.size() == 0){// this does happen, but why?
  			return null;
  		}
  		return states;
  	}