docs: public static PathInfo splitPath(String aPath)
      {
          String prefix = null;
          String suffix = null;
          String colName = aPath;
   
          if (aPath == null)
          {
              return new PathInfo(null, null, null, null);
          }
  
          // ignore leading ( and trailing ) ie: sum(avg(col1))
          int braceBegin = aPath.lastIndexOf("(");
          int braceEnd = aPath.indexOf(")");
          int opPos = StringUtils.indexOfAny(aPath, "+-/*");
  
          if (braceBegin >= 0 && braceEnd >= 0 && braceEnd > braceBegin)
          {
              int colBegin;
              int colEnd;
              String betweenBraces;
  
              betweenBraces = aPath.substring(braceBegin + 1, braceEnd).trim();
              // look for ie 'distinct name'
              colBegin = betweenBraces.indexOf(" ");
              // look for multiarg function like to_char(col,'format_mask')
              colEnd = betweenBraces.indexOf(",");
              colEnd = colEnd > 0 ? colEnd : betweenBraces.length();
              prefix = aPath.substring(0, braceBegin + 1) + betweenBraces.substring(0, colBegin + 1);
              colName = betweenBraces.substring(colBegin + 1, colEnd);
              suffix = betweenBraces.substring(colEnd) + aPath.substring(braceEnd);
          }
          else if (opPos >= 0)
          {
              colName = aPath.substring(0, opPos).trim();
              suffix = aPath.substring(opPos);
          }
          
          return new PathInfo(aPath, prefix, colName.trim(), suffix);
      }