I mislead you with my example, sorry.
You have to work with existing ChatScript syntax, including reserve words and structures. The gesture=smile component is, of course, a comparison operator in a pattern. gesture:smile would have worked fine. Currently CS has no way to escape the component. I will add such in a few weeks, so you could write:
u: ( \[ \gesture=smile \] ) response..
Of course you also have to decide what effect you are seeking. Making the argument to the component be a part of it, means you have to fully match the thing like “gesture:smile” whereas making it be the next token means you can just match the “gesture” and then pass along the next value as an argument to things bound as a pattern match variable. There isn’t any right choice, unless your code needs to be extensible and you intend to separate into one topic the basic match, and have another updateable topic handle the exact gesture.