I can't see that the scope changes to 'meta.foo.bar' within \xx and \yy. Can somebody tell me what to do?
Looks fine to me, I'd tend to think something else in the grammar is conflicting or something like that. Paste the whole grammar to pastie (opt-control-shift-V) as well as a sample file where it breaks so we can better help diagnose it.