code: private boolean matchClause(Clause clause, char[] chars, int[] cursor) {
      if (clause.minlen > cursor[1] - cursor[0])
        return false;
      for (int i = 0; i < clause.items.length; i++) {
        Object item = clause.items[i];
        if (item == matchOne)
          cursor[0]++;
        else if (!matchForward(chars, (char[]) item, cursor))
          return false;
        // else this phase succeeded so continue
      }
      return true;
    }
docs: Match one clause against a character sequence (used by checkPrefix and matchMiddle)