docs: def nfa(self, nextstate):
          """Returns an initial state for an NFA"""
          if self.interval:
              mininterval, maxinterval = self.interval #pylint: disable=unpacking-non-sequence
              nextstate2 = nextstate
              for i in range(maxinterval):
                  state = State(transitions=[(self,self.match, nextstate2)])
                  if i+1> mininterval:
                      if nextstate is not nextstate2: state.transitions.append((self,self.match, nextstate))
                      if maxinterval == MAXINTERVAL:
                          state.epsilon.append(state)
                          break
                  nextstate2 = state
              return state
          else:
              state = State(transitions=[(self,self.match, nextstate)])
              return state