docs: public static int findEndOfSubExpression(String expression, int start) {
  		int count = 0;
  		for (int i = start; i < expression.length(); i++) {
  			switch (expression.charAt(i)) {
  				case '(': {
  					count++;
  					break;
  				}
  				case ')': {
  					count--;
  					if (count == 0) {
  						return i;
  					}
  					break;
  				}
  			}
  		}
  		throw new IllegalArgumentException("can't parse expression [" + expression + "]: end of subexpression not found");
  	}