code: private int nextTopLevelArgStart(int partIndex) {
          if (partIndex != 0) {
              partIndex = msgPattern.getLimitPartIndex(partIndex);
          }
          for (;;) {
              MessagePattern.Part.Type type = msgPattern.getPartType(++partIndex);
              if (type == MessagePattern.Part.Type.ARG_START) {
                  return partIndex;
              }
              if (type == MessagePattern.Part.Type.MSG_LIMIT) {
                  return -1;
              }
          }
      }
docs: Returns the part index of the next ARG_START after partIndex, or -1 if there is none more.
  @param partIndex Part index of the previous ARG_START (initially 0).