private static String getPointerArrayDecorations(String dataTypeName) {
		// Use of this preliminary check greatly speeds-up the check for cases
		// not involving a pointer or array
		if (!dataTypeName.contains("*") && !dataTypeName.contains("[")) {
			return null;
		}

		// Return the trailing pointer and array decorations if they exist
		Matcher matcher = DATATYPE_POINTER_ARRAY_PATTERN.matcher(dataTypeName);
		if (matcher.find()) {
			MatchResult matchResult = matcher.toMatchResult();
			return dataTypeName.substring(matchResult.start());
		}
		return null;
	}
Perform a namespace qualified datatype search.  
@param dataTypeManager datatype manager
@param dtName datatype name
@param classConstraint type of datatype by its interface class (e.g., {@link Structure}).
@param categoryMatcher responsible for evaluating the category path
for a possible match with a namespace constraint.  
@return The first {@link CategoryMatchType#PREFERRED} match will be 
returned if found.  If none are {@link CategoryMatchType#PREFERRED}, the first 
{@link CategoryMatchType#SECONDARY} match will be returned.  Otherwise null is returned.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeUtilities.java