Eso me pasa por escribir el código directamente en el foro, perdona.
Código Delphi
[-]
function filtraNombre(base:string):string;
const permitidos = ['A'..'Z','a'..'z','0'..'9','_'];
const letras = ['A'..'Z','a'..'z'];
var i:integer;
begin
result := EmptyStr;
if base[1] in letras then
for i:= 1 to length(base) do
if base[i] in permitidos then
result := result + base[i]
end;
Los rangos es con ".." en lugar de con guión.
Saludos