matcher.go
func hasUUIDPrefix(s string) bool {
	if len(s) < 36 {
		return false
	}
	var count int
	for i, r := range s {
		// should not be multi byte char
		if count != i {
			return false
		}
		switch count {
		case 8, 13, 18, 23:
			if r != '-' {
				return false
			}
		default:
			if !isHex(r) {
				return false
			}
		}
		if count == 35 {
			return true
		}
		count += 1
	}

	// should not run here
	return false
}
func hasUUIDPrefix(s string) bool {
	if len(s) < 36 {
		return false
	}
	var count int
	for i, r := range s {
		// should not be multi byte char
		if count != i {
			return false
		}
		switch count {
		case 8, 13, 18, 23:
			if r != '-' {
				return false
			}
		default:
			if !isHex(r) {
				return false
			}
		}
		if count == 35 {
			return true
		}
		count += 1
	}

	// should not run here
	return false
}
// UUID's 8, 13, 23, 18 is '-'
// e.g. 9E242A66-4EA6-4323-AD5C-66A76F4472FE