Можете да използвате функции във вашата клауза за поръчка. В този случай можете да разделите нечисловите и числовите части на полето и да ги използвате като два от критериите за подреждане.
select * from t
order by to_number(regexp_substr(a,'^[0-9]+')),
to_number(regexp_substr(a,'[0-9]+$')),
a;
Можете също така да създадете базиран на функция индекс, който да поддържа това:
create index t_ix1
on t (to_number(regexp_substr(a, '^[0-9]+')),
to_number(regexp_substr(a, '[0-9]+$')),
a);