I'm not sure if it's the best way, but one way to solve it would be:
- Create a new attribute and fill it with the car number converted to a decimal
- If the original value is empty, set it to a really high or a really low number (e.g. 999999999999 or -99999999999)
- Use the widget Listview Controls (specifically, the “Header sort”). This allows you to sort the grid by an attribute that isn't necessarily visible, so you can sort by your new attribute. Unfortunately empty values will still be at the top or bottom depending on your choice in step 2.
Otherwise, it might be worth making two grids with datasource microflows, one that sorts ascending and one that sorts descending (where you can also deal with empty values). You could toggle which one is shown by letting the user click microflow buttons. It's an ugly solution, but maybe someone else has a better one :-)