code: func newExprIterFromGroupExpr(expr *GroupExpr, p *Pattern) *ExprIter {
  	if len(p.Children) != len(expr.Children) {
  		return nil
  	}
  
  	iter := &ExprIter{Operand: p.Operand, matched: true}
  	for i := range p.Children {
  		childIter := newExprIterFromGroup(expr.Children[i], p.Children[i])
  		if childIter == nil {
  			return nil
  		}
  		iter.Children = append(iter.Children, childIter)
  	}
  	return iter
  }
docs: // newExprIterFromGroupExpr creates the iterator on the Group expression.