code: protected int getLastPropertySeparatorIndex(String propertyPath) {
  		boolean inKey = false;
  		for (int i = propertyPath.length() - 1; i >= 0; i--) {
  			switch (propertyPath.charAt(i)) {
  			case PropertyAccessor.PROPERTY_KEY_SUFFIX_CHAR:
  				inKey = true;
  				break;
  			case PropertyAccessor.PROPERTY_KEY_PREFIX_CHAR:
  				return i;
  			case PropertyAccessor.NESTED_PROPERTY_SEPARATOR_CHAR:
  				if (!inKey) {
  					return i;
  				}
  				break;
  			}
  		}
  		return -1;
  	}
docs: Returns the index of the last nested property separator in the given
  property path, ignoring dots in keys (like "map[my.key]").