code: func (m *matcher) enc(z *nstate) []byte {
  	buf := m.buf[:0]
  	buf = append(buf, byte(z.needFlag), byte(z.flag))
  	ids := m.ids[:0]
  	for _, id := range z.q.Dense() {
  		ids = append(ids, int(id))
  	}
  	sortInts(ids)
  	last := ^uint32(0)
  	for _, id := range ids {
  		x := uint32(id) - last
  		last = uint32(id)
  		for x >= 0x80 {
  			buf = append(buf, byte(x)|0x80)
  			x >>= 7
  		}
  		buf = append(buf, byte(x))
  	}
  	m.buf = buf
  	return buf
  }
docs: // enc encodes z as a string.