Allora, il problema è qui:
if((preg_match("/^[a-z0-9_-]+$/i", $_POST['nick'])) && ($row_general['nick'] != $_POST['nick']) && ($_POST['pwd'] != ''));
e non sulla select. Infatti per la select non c'è problema sia se è minuscolo sia se è maiuscolo.
Visto che sono un pò ignorante posso fare una cosa simile?
(strtolower($row_general['nick']) != strtolower($_POST['nick']))
Grazie per l'aiuto