Great function! Definitely going into my Hall of Fame!
One other trick it handled nicely was including a decimal in the numeric sort order. For example, I needed 1.11.338 to show before 10.1.002 By adding a decimal at the end of the numeric check, I was able to sort the numbers with multiple decimals correctly.
ufn_StripCharacters([ColumnName], '^0-9+-/.')
Awesome!!!!!!!