code: static String[] splitName(String name) {
          logger.trace("splitting name for {}", name);
  
          Matcher m = ARR_ELEMENT_NAME.matcher(name);
          if (m.matches()) {
              return new String[]{ m.group(1), m.group(2), Boolean.TRUE.toString() };
          } else if ((m = OBJ_ELEMENT_NAME.matcher(name)).matches()) {
              return new String[]{ m.group(1), m.group(2), Boolean.FALSE.toString() };
          } else {
              return new String[]{ "", name, Boolean.FALSE.toString() };
          }
      }
docs: return (parent, name, isArray:false) or (name, index, isArray:true)