Não é assim que as classes de caracteres funcionam, a regex não diferencia entre 26 e 2 seguido de 6 , portanto, sua classe de caracteres está sendo interpretada como 1-2 ou 5 . Além disso, o . significa "corresponde a qualquer caractere", não um literal . , eu não acho que o mecanismo apt regex permite escapar, então você teria que usar uma classe de caractere para corresponder ( [.] ). Finalmente, você precisa ter várias ocorrências de cada número, então você precisa de algo como:
apt-cache search --names-only wine[0-9]+[.]*[0-9]*
O --names-only garante que o seu regex corresponda apenas aos nomes dos pacotes agaist, e não às descrições.