You can use linq to do that. I changed APTN0K02TTTBALL to SPTN0K02TTTBALL since that looks like a typo.
Dim list1() As String = {"CONE0Z08TTTBALL", "BARE0U04TTTBALL",
"APTN0S01TTTBALL", "SPTN0K02TTTBALL"}
Dim result = list1.OrderBy(Function(q) q.Substring(5)).ToArray
For Each s As String In result
Console.WriteLine(s)
Next
Output:
SPTN0K02TTTBALL
APTN0S01TTTBALL
BARE0U04TTTBALL
CONE0Z08TTTBALL
Note: If by 5th character, you meant 1-based, change the substring argument (which is 0 based) . Also, this is an alpha sort, so if you want to sort by the value of a numeral, you should also convert to integer. Not sure which you mean.
ryanyuyu kindly wrote you this DotNetFiddle
SPTN0K02TTTBALLisnt in the array - is that a typo?VPTN0S01TTTBALLisnt in the list...I get the drift though