Isso pode ser mais adequado para o link
Mas, de qualquer forma, :h :sort explica o que está acontecendo lá:
If a {pattern} is used, any lines which don't have a
match for {pattern} are kept in their current order,
but separate from the lines which do match {pattern}.
If you sorted in reverse, they will be in reverse
order after the sorted lines, otherwise they will be
in their original order, right before the sorted
lines.
Em palavras simples, .*\< corresponde a todas as linhas na entrada e :sort é executada em todas as linhas.
Embora .*= corresponda apenas às linhas que contêm = , essas linhas são classificadas por :sort . Todas as linhas restantes (aquelas que não corresponderam ao padrão):
142
1804642
1
37844
555839
Não são classificados, mas são simplesmente descartados no início do arquivo. Graças ao fato de que você está usando ! , a ordem de todas as linhas é invertida, então elas terminam no final do arquivo e na ordem inversa.