Bug 35867 [navigation] "//" breaks backwarsds bracket matching
Clicking on the opening bracket will mark the closing one but it won't work the other way round when the block contains a string declaration initialized with a XPath expression: public void demo() { String query = "//input[@name='blah']/@value"; }
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/JavaPairMatcher.java
* @since 3.1
	 */
	private boolean isTypeParameterBracket(int offset, IDocument document) {
		/*
		 * type parameter come after braces (closing or opening), semicolons, or after
		 * a Type name (heuristic: starts with capital character, or after a modifier
		 * keyword in a method declaration (visibility, static, synchronized, final)
		 */
		try {
			IRegion line= document.getLineInformationOfOffset(offset);
			JavaHeuristicScanner scanner= new JavaHeuristicScanner(document);
			int prevToken= scanner.previousToken(offset - 1, line.getOffset());
			int prevTokenOffset= scanner.getPosition() + 1;
			String previous= prevToken == Symbols.TokenEOF ? null : document.get(prevTokenOffset, offset - prevTokenOffset).trim();
			if (	   prevToken == Symbols.TokenLBRACE
					|| prevToken == Symbols.TokenRBRACE
					|| prevToken == Symbols.TokenSEMICOLON
					|| prevToken == Symbols.TokenSYNCHRONIZED
					|| prevToken == Symbols.TokenSTATIC
					|| (prevToken == Symbols.TokenIDENT && isTypeParameterIntroducer(previous))
					|| prevToken == Symbols.TokenEOF)
				return true;
		} catch (BadLocationException e) {
			return false;
		}
		return false;
	}
	/**
	 * Returns <code>true</code> if <code>identifier</code> is an identifier
	 * that could come right before a type parameter list. It uses a heuristic: