Это гигантский хак, но, думаю, сработает. Если имя вашего столбца s:
order by
(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(s, '0', ''), '1', ''), '2', ''), '3', ''), '4', ''), '5', ''), '6', ''), '7', ''), '8', ''), '9', ''),
length(s) desc,
s desc
Сначала выполните сортировку по алфавитной части текста, чтобы собрать все одинаковые имена, затем по длине, чтобы отсортировать их примерно численно, затем по s. Последний order by s
теперь работает правильно, потому что он используется только для устранения неоднозначности между одинаковыми именами с одинаковым количеством цифр.