code: func (q *TagQuery) getInitialByMatch(expr kvRe, idCh chan schema.MKey, stopCh chan struct{}) {
  	defer q.wg.Done()
  
  	// shortcut if value == nil.
  	// this will simply match any value, like ^.+. since we know that every value
  	// in the index must not be empty, we can skip the matching.
  	if expr.value == nil {
  	VALUES1:
  		for _, ids := range q.index[expr.key] {
  			for id := range ids {
  				select {
  				case <-stopCh:
  					break VALUES1
  				case idCh <- id:
  				}
  			}
  		}
  		close(idCh)
  		return
  	}
  
  VALUES2:
  	for v, ids := range q.index[expr.key] {
  		if !expr.value.MatchString(v) {
  			continue
  		}
  
  		for id := range ids {
  			select {
  			case <-stopCh:
  				break VALUES2
  			case idCh <- id:
  			}
  		}
  	}
  
  	close(idCh)
  }
docs: // getInitialByMatch generates the initial resultset by executing the given match expression