I am trying to sort a list of file names in a created from one folder. Here is the code as it's simplest form. If I run this the 10 always comes after the 1 rather then the 9. What am I over looking.

set composer_list to {"Filename_1", "Filename_2", "Filename_3", "Filename_4", "Filename_5", "Filename_6", "Filename_7", "Filename_8", "Filename_9", "Filename_10", "Filename_11"}
simple_sort(composer_list)
--======================================= Sorting Handler =====================================
on simple_sort(my_list)
set the index_list to {}
set the sorted_list to {}
repeat (the number of items in my_list) times
set the low_item to ""
repeat with i from 1 to (number of items in my_list)
if i is not in the index_list then
set this_item to item i of my_list as text
if the low_item is "" then
set the low_item to this_item
set the low_item_index to i
else if this_item comes before the low_item then
set the low_item to this_item
set the low_item_index to i
end if
end if
end repeat
set the end of sorted_list to the low_item
set the end of the index_list to the low_item_index
end repeat
return the sorted_list
end simple_sort

I had a list with hyphenated sections and subsections, using numbers separated by hyphens (section1, section1-3, section1-3-5, section2-0). Using the original simple_sort, 1-3-5 was coming in before 1-3. However, using "considering numeric strings" instead treated the hyphens as minus signs, and things were all jumbled. However, I added another subroutine to pre-treat the compared strings by removing the hypens before comparing:

on removeHyphens(theText)
set AppleScript's text item delimiters to "-"
set theReturn to every text item of theText
set AppleScript's text item delimiters to ""
set theReturn to theReturn as string
return theReturn
end removeHyphens

Then in the simple_sort function, I changed one line to this:
else if removeHyphens(this_item) comes before removeHyphens(low_item) then