Here is an example of how I imagine this to work:
[code]- plain - plain ? plain : plain: plain
<- -string
^ -string
^ -string
^ -string
^ -string
^ -string
^ -string
^ -string
^ -string
- plain - plain ? plain : plain: plain
#.^^^^^…^^^^^…^^^^^…^^^^^…^^^^^ string.unquoted.plain
<- -string.unquoted.plain
[/code]
^ represents a supposed match, . represents a supposed “not match” and (space) represents “don’t care”
I would use -, but that is already used for negative selectors and thus ambiguous.
Edit: This example is actually wrong, but you get the idea.