private int findTemplateStart(String string, int templateEnd) {
		return findBalancedStart(string, templateEnd, '<', '>');
	}
Scans the given string from the given offset looking for a balanced {@code open}
character.   This algorithm will not report a match for the open character until the
{@code end} character has first been found.   This allows clients to scan from anywhere
in a string to find an open and start character combination, including at or before the
desired opening character.

@param string the input string
@param start the start position within the string
@param open the open character (e.g, '(' or '<')
@param close the close character (e.g, ')' or '>')
@return the end index; -1 if no templates found
Ghidra/Features/GnuDemangler/src/main/java/ghidra/app/util/demangler/gnu/GnuDemanglerParser.java