code: public boolean isValidOracleIdentifier(String identifier, Class<? extends DatabaseObject> type) {
          if ((identifier == null) || (identifier.length() < 1))
              return false;
  
          if (!identifier.matches("^(i?)[A-Z][A-Z0-9\\$\\_\\#]*$"))
              return false;
  
          /*
           * @todo It seems we currently do not have a class for tablespace identifiers, and all other classes
           * we do know seem to be supported as 12cR2 long identifiers, so:
           */
          return (identifier.length() <= LONG_IDENTIFIERS_LEGNTH);
      }
docs: Tests if the given String would be a valid identifier in Oracle DBMS. In Oracle, a valid identifier has
  the following form (case-insensitive comparison):
  1st character: A-Z
  2..n characters: A-Z0-9$_#
  The maximum length of an identifier differs by Oracle version and object type.