si vede che non hai provato....
codice:
mysql_query("
select id,
IF(LEFT(soprannome, 1) = "\\" , substring(soprannome, 2), campo) as pippo
from soprannomi 
order by pippo
") ; 

$soprannome = stripslashes(row['soprannome']);
In pratica tieni presente che ' l'apice viene prima delle lettere nell'ordinamento ascii (ascii 39 mi pare) poi hai l'escape dell'apice \ backslash (ascii 92), che viene dopo le maiuscole e prima delle minuscole. Se l'ordinamento non e' case sensitive il \ viene dopo numeri e lettere.

Il carattere di escape viene eliminato con stripslashes, ma in order by e' presente. Va quindi tolto per l'ordinamento con la IF (se esiste), e poi eliminato (potrebbero essercene altri ???) con stripslashes sul campo estratto....