private boolean checkIfPossibleMemoryBlockPattern(String queryString) {
		// A legacy feature is the ability to also be able to find a label in a particular memory
		// block using the same syntax as a symbol in a namespace. So something like 
		// "block::bob" would find the symbol "bob" (regardless of its namespace) if it were
		// in a memory block named "block". (Also, this only worked if there wasn't also a 
		// symbol in a namespace named "block"). Now that wildcards are supported in the namespace
		// specifications, this feature becomes even more confusing. To avoid this, the legacy
		// memory block feature will not support wildcards and probably should be removed 
		// at some point.

		int lastIndexOf = queryString.lastIndexOf(Namespace.DELIMITER);

		// if no delimiter exists or it starts with a delimiter, then it can't match a memory block
		if (lastIndexOf < 1) {
			return false;
		}
		String qualifierPart = queryString.substring(0, lastIndexOf);

		// if the qualifier is a multi part path, then it can't match a memory block
		if (qualifierPart.indexOf(Namespace.DELIMITER) >= 0) {
			return false;
		}

		// we don't support wildcard when matching against memory block names
		return !qualifierPart.contains("*") && !qualifierPart.contains("?");
	}
Class for matching symbol names with or without namespace paths and wildcards.
Ghidra/Features/Base/src/main/java/ghidra/app/util/navigation/SymbolMatcher.java