private LambdaName getLambdaName(String name) {

		if (!name.startsWith("{")) {
			// the text must start with the lambda syntax; ignore lambdas that are internal to
			// the given name
			return null;
		}

		// This replacement string will leave the initial 'lambda' text and replace all others
		// with a placeholder value.  This allows us to use a simple regex pattern when pulling
		// the lambda apart.   This is required to handle the case where a lambda expression
		// contains a nested lambda expression.
		LambdaReplacedString replacedString = new LambdaReplacedString(name);
		String updatedName = replacedString.getModifiedText();

		Matcher matcher = LAMBDA_PATTERN.matcher(updatedName);
		if (!matcher.matches()) {
			return null;
		}

		// restore the placeholder values to get back the original lambda text
		String fullText = matcher.group(1);
		fullText = replacedString.restoreReplacedText(fullText);
		String params = matcher.group(2);
		params = replacedString.restoreReplacedText(params);
		String trailing = matcher.group(3);
		trailing = replacedString.restoreReplacedText(trailing);
		String modifiers = matcher.group(4);
		return new LambdaName(fullText, params, trailing, modifiers);
	}
Parses the given demangled string and creates a {@link DemangledObject}

@param mangled the original mangled text
@param demangled the demangled text
@param simplify true signals to simplify types where possible, such as using simple c++ 
typedefs where possible.
@return the demangled object
@throws DemanglerParseException if there is an unexpected error parsing
@see #parse(String, String, boolean)
Ghidra/Features/GnuDemangler/src/main/java/ghidra/app/util/demangler/gnu/GnuDemanglerParser.java