I use standard approach to display my database records in the ListView:
recordsCursor = mDb.query(DATABASE_BL_TABLE, new String[] {KEY_BL_ROWID, KEY_BL_SENDER, KEY_BL_ADDED}, null, null, null, null, KEY_BL_SENDER);
startManagingCursor(recordsCursor);
String[] from = new String[]{DbAdapter.KEY_BL_SENDER};
int[] to = new int[]{R.id.text1};
adapter = new SimpleCursorAdapter(this, R.layout.mylist_row, recordsCursor, from, to);
setListAdapter(adapter);
So, all records are sorted by KEY_BL_SENDER. 
I would like to implement the following sorting logic:
- ignore case (so, the list of 4 elements - 
aa,bb,AA,BBwill be displayed in the following order:AA,aa,BB,bb); - ignore other symbols besides letters (the list of 4 elements - 
** aa **,~bb~,aa,__BB__will be displayed in the following order:aa,** aa **,__BB__,~bb~). 
How could I do it?