Test that an NCName and * are interpreted as an operator when in binary operator context, and as a NameTest otherwise. See bug 50366: XPath lexer misinterprets expression starting with "div". PASS div PASS div PASS (div) div (div) PASS self::node()[div] div 1 PASS . div . PASS .. div .. PASS string(div/@div) PASS substring-before('1992', div) PASS self::div PASS * div 4 PASS '3' div 4 PASS "3" div 4 PASS 12 div 4 PASS true() and div PASS false() or div PASS div mod div PASS div div div PASS 3 * div PASS div/div PASS div//div PASS zz|div PASS div+div PASS - - div PASS 5 -div PASS div=div PASS div!=div PASS div<div PASS div<=div PASS div>div PASS div>=div PASS * PASS * PASS (*) * (*) PASS self::node()[*] * 1 PASS . * . PASS .. * .. PASS substring-before('1992', *) PASS self::* PASS * * 4 PASS '3' * 4 PASS "3" * 4 PASS 12 * 4 PASS true() and * PASS false() or * PASS * mod * PASS * div * PASS 3 * * PASS */* PASS *//* PASS zz|* PASS *+* PASS - - * PASS 5 -* PASS *=* PASS *!=* PASS *<* PASS *<=* PASS *>* PASS *>=* PASS or:or PASS or:* PASS mod PASS mod mod mod PASS (mod) mod 5 PASS string(mod/@and) PASS successfullyParsed is true TEST COMPLETE