You want what is called a "natural sort"
I can only demonstrate using python...
a = ['1', '21', '3', 'r4', 'r41', '7', '71', 'r711', '10', 'r100']
b = sorted(a)
print("input - \n{}".format(a))
print("text sort - \n{}".format(b))
vals = natsort(a)
print("natural sort - \n{}".format(vals))
input -
['1', '21', '3', 'r4', 'r41', '7', '71', 'r711', '10', 'r100']
text sort -
['1', '10', '21', '3', '7', '71', 'r100', 'r4', 'r41', 'r711']
natural sort -
['1', '3', '7', '10', '21', '71', 'r4', 'r41', 'r100', 'r711']
The process and code
import re
def natsort(lst):
"""natural sort"""
import re
convert = lambda text: int(text) if text.isdigit() else text
a_key = lambda key: [convert(c) for c in re.split('([0-9]+)', key)]
return sorted(lst, key=a_key)
... sort of retired...