It is sorting the column correctly. Digits sort before alpha characters.; 0-9 come before "A" and they sort "alphanumerically" as characters, not as numbers (100 is not one hundred, it is the characters "1" "0" "0").
It sounds like you want to ignore the leading numbers and sort by the characters after the numbers. Note that rows like "5 COBS" and "20 COBS" will be ranked the same if you remove the digits, both being "COBS", so whichever comes first in the column will sort higher/first.
I will assume all of your strings have a leading number and a space character.
If your strings are in column A (starting in A2), you can remove the leading digits and the space character with the following formula in cell B2:
=TEXTAFTER(A2," ")
fill down to complete the column
Then sort by column B
If the number matters and you want to ensuire rows like "5 COBS" and "20 COBS" sort numerically, you'll need a column C
C2 = TEXTBEFORE(A2," ")*1
Fill down
Use the Organize sidebar to create a sort that uses both column B and C

I'm not suggesting you do what I say next because the formulas are more complicated but it is another possibility.
If you are using Numbers version 14.4 , an alternate idea is do the sort in another column using formulas without actually sorting the table.

In column B, use the following formula:
=SORTBY(A,REGEX.EXTRACT(A,"(?<=\d ).+"))
or, to also sort numerically so "COB 5" is sure to come before "COB 20",
=SORTBY(A,REGEX.EXTRACT(A,"(?<=\d ).+"),1,1×REGEX.EXTRACT(A,"\d+"))
No manual sorting is required. The formula does it all.