Yo no sé cómo maneja las claves foráneas MySQL pero en SQL Server siempre he usado:
Constraint fk_expediente foreign key (expediente) references Expedientes
y para las claves primarias
id_documento varchar(40) not null primary key,
Pero no sé si irán x ahí los tiros de las claves foráneas...
Y ya q no te inserte el registro en la tabla admin... ni idea de por qué... parece una sintaxis válida y correcta aunque yo lo hubiera puesto así para verlo mejor:
Código PHP:
$sql = "INSERT INTO admin (login,pass,pass2,mail) VALUES ('nogues','nogues','nogues','[email protected]')";
Saludos.