code: func expandQueries(query string) []string {
  	queries := []string{query}
  
  	// as long as we find a { followed by a }, split it up into subqueries, and process
  	// all queries again
  	// we only stop once there are no more queries that still have {..} in them
  	keepLooking := true
  	for keepLooking {
  		expanded := make([]string, 0)
  		keepLooking = false
  		for _, query := range queries {
  			lbrace := strings.Index(query, "{")
  			rbrace := -1
  			if lbrace > -1 {
  				rbrace = strings.Index(query[lbrace:], "}")
  				if rbrace > -1 {
  					rbrace += lbrace
  				}
  			}
  
  			if lbrace > -1 && rbrace > -1 {
  				keepLooking = true
  				expansion := query[lbrace+1 : rbrace]
  				options := strings.Split(expansion, ",")
  				for _, option := range options {
  					expanded = append(expanded, query[:lbrace]+option+query[rbrace+1:])
  				}
  			} else {
  				expanded = append(expanded, query)
  			}
  		}
  		queries = expanded
  	}
  	return queries
  }
docs: // We don't use filepath.Match as it doesn't support {} because that's not posix, it's a bashism
  // the easiest way of implementing this extra feature is just expanding single queries
  // that contain these queries into multiple queries, which will be checked separately
  // and the results of which will be ORed.