When you extend an existing syntax (like C), you need to consider the existing syntax items. The following line from syntax/c.vim
causes the inclusion of your xFOO
group via the ALLBUT=
:
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
Fortunately, it provides an extension point: You have to add your group to the @cParenGroup
cluster:
syn cluster cParenGroup add=xFoo
That should do the trick!