code: public boolean matchMiddle(char[] chars, int start, int end) {
      if (midClauses == null)
        return true;
      int[] cursor = new int[] {start, end};
      for (int i = 0; i < midClauses.length; i++) {
        Clause clause = midClauses[i];
        if (!find(clause, chars, cursor))
          return false;
      }
      return true;
    }
docs: Match a sequence of characters against the midClauses of this pattern