docs: private static int parseLimits(int i, int end, char[] data, int[] limits) throws PatternSyntaxException {
          if (limits.length != LIMITS_LENGTH)
              throw new IllegalArgumentException("limits.length=" + limits.length + ", should be " + LIMITS_LENGTH);
          limits[LIMITS_PARSE_RESULT_INDEX] = LIMITS_OK;
          int ind = 0;
          int v = 0;
          char c;
          while (i < end) {
              c = data[i++];
              switch (c) {
                  case ' ':
                      continue;
  
                  case ',':
                      if (ind > 0) throw new PatternSyntaxException("illegal construction: {.. , , ..}");
                      limits[ind++] = v;
                      v = -1;
                      continue;
  
                  case '}':
                      limits[ind] = v;
                      if (ind == 0) limits[1] = v;
                      return i;
  
                  default:
                      if (c > '9' || c < '0') {
                          //throw new PatternSyntaxException("illegal symbol in iterator: '{"+c+"}'");
                          limits[LIMITS_PARSE_RESULT_INDEX] = LIMITS_FAILURE;
                          return i;
                      }
                      if (v < 0) v = 0;
                      v = v * 10 + (c - '0');
              }
          }
          throw new PatternSyntaxException("malformed quantifier");
      }