This is not really a bug, it is how you have defined and stored your data.
Because the item numbers have an alphabetic character, they are no longer numbers. They are strings and I am sure your column type is a character/string type.
The reason for the "incorrect" order, is this is how strings are sorted, character by character, left to right. That they have numbers in them does not matter and has no meaning.
There are a number of ways you can fix this -
1) Keep them as strings, but make all the number fields the same length -
c01, c02, ... c09, c10, c11... This makes the same character position in each string have the same significance.
2) Remove the "c" from your item numbers and make the column an actual number type. You can also remove the "c" and leave this as a character type, but you must force the query to treat them as numbers to get it to sort correctly. If you want the "c" in the final results, you can either append it as part of the query or as part of the code that processes the results.
3) You can form a query that strips the "c" and converts this to a number to be used in the ORDER BY clause. The following query will work (tested) -