Write an expression that returns the first alphabetic character, and then just Order By [this expression]
Order By substring(LTrim( Replace(Replace(Replace(Replace(Replace( Replace(Replace(Replace(Replace(Replace( colname, '1', ''),'2',''),'3',''),'4,''),'5', ''), '6',''),'7',''),'8',''),'9',''),'0','')) 1,1)
If you need strings sorted by the whole city name, and not just by the first character (as indicated in the question header), use this:
Order By LTrim( Replace(Replace(Replace(Replace(Replace( Replace(Replace(Replace(Replace(Replace( colname, '1', ''),'2',''),'3',''),'4,''),'5', ''), '6',''),'7',''),'8',''),'9',''),'0',''))
This assumption is higher (I have not tried it), but the idea first removes all the numeric characters from the column value, and then takes the first character of what remains.
Also, if this works, and if you have any development access for dataabse (DRY principle), I would add a computed column to this table (or a separate view against the table), which is defined as using the above expression, so that this “ extraction ” of the city name is available for all other code that you might want to access, without copying this expression in everything that you might need.