podrias intentar con:
Código PHP:
if(ereg("[a-z]",$clave) && ereg("[A-Z]",$clave) )
// revisamos que tenga una minuscula y una mayuscula, si las dos condiciones son verdaderas entra
{
// Ahora revisamos que $clave tenga una logitud entre 4 y 20 caracteres
if ( strlen($clave)>=4 && strlen($clave)<=20)
{
echo "correcto";
}else
{
echo $mensaje_error1=" minimo 4 caracteres";
}
}else
{// else ereg
echo $mensaje_error2='No contienen por lo menos una mayuscula o minuscula ';
}// else ereg
Sinceramente no lo he probado, pero intentalo, o podiras anidar un elseif para cada condición
SUERTE!!