protected void updateBindings(VarGroupBindings bindings) {
   // update bindings of child expressions
   for (PatternExpr pattern : patterns) {
     pattern.updateBindings(bindings);
   }
 }
 protected void updateBindings(VarGroupBindings bindings) {
   if (varname != null) {
     bindings.set(captureGroupId, varname);
   }
   pattern.updateBindings(bindings);
 }
 protected void updateBindings(VarGroupBindings bindings) {
   pattern.updateBindings(bindings);
 }
 protected void updateBindings(VarGroupBindings bindings) {
   for (PatternExpr pattern : patterns) {
     pattern.updateBindings(bindings);
   }
 }