private boolean skip(String mangled, GnuDemanglerOptions options) {

		// Ignore versioned symbols which are generally duplicated at the same address
		if (mangled.indexOf("@") > 0) { // do not demangle versioned symbols
			return true;
		}

		if (mangled.startsWith("___")) {
			// not a mangled symbol, but the demangler will try anyway, so don't let it
			return true;
		}

		if (!options.demangleOnlyKnownPatterns()) {
			return false; // let it go through
		}

		// This is the current list of known demangler start patterns.  Add to this list if we
		// find any other known GNU start patterns.
		if (mangled.startsWith(GLOBAL_PREFIX)) {
			int index = mangled.indexOf("_Z");
			if (index > 0) {
				return false;
			}
		}
		if (mangled.startsWith("_Z")) {
			return false;
		}
		if (mangled.startsWith("__Z")) {
			return false;
		}
		if (mangled.startsWith("h__")) {
			return false; // not sure about this one
		}
		if (mangled.startsWith("?")) {
			return false; // not sure about this one
		}
		if (isGnu2Or3Pattern(mangled)) {
			return false;
		}

		return true;
	}
Determines if the given mangled string should not be demangled.  There are a couple
patterns that will always be skipped.
If {@link GnuDemanglerOptions#demangleOnlyKnownPatterns()} is true, then only mangled
symbols matching a list of known start patters will not be skipped.

<P>This demangler class will default to demangling most patterns, since we do not yet
have a comprehensive list of known start patterns.

@param mangled the mangled string
@param options the options
@return true if the string should not be demangled
Ghidra/Features/GnuDemangler/src/main/java/ghidra/app/util/demangler/gnu/GnuDemangler.java