code: public String getKey(String expression) {
      if (expression == null || expression.length() == 0) { return null; }
      for (int i = 0; i < expression.length(); i++) {
        char c = expression.charAt(i);
        if (c == Nested || c == IndexedStart) {
          return null;
        } else if (c == MappedStart) {
          int end = expression.indexOf(MappedEnd, i);
          if (end < 0) { throw new IllegalArgumentException("Missing End Delimiter"); }
          return expression.substring(i + 1, end);
        }
      }
      return null;
    }
docs: Return the map key from the property expression or <code>null</code>.
  
  @param expression The property expression
  @return The index value
  @throws IllegalArgumentException If the mapped property is illegally formed.