Wow! (This is the kind of feeling you don't have very often) This solution is really graceful, simple and straight.
Enlil played at least three very neat tricks here:
He forced the number portion to be extracted and compared. (this gives some warnings, but compare to the elegance he showed us in this one liner, those warnings are really nothing)
If you really want to avoid the warnings, do this:
That || triggered the second condition to be evaluated, if the first condition evaluates to false, two elements have the same number portion are ordered by the string as a whole.
If two elements have the same number portion, then logically, to order them by the string portion following the number portion results the same sequence as to order by the whole string.