ПеревозЧЕГ, самый короткий будет так, работоспособность проверена
preg_match("|^\D[a-z0-9\._-]{3,19}$|i",$login))