Secuencia de escape no válida \ d

Estoy tratando de verificar si una contraseña contiene al menos una letra minúscula, una letra mayúscula, un dígito y un carácter especial.

Estoy intentando esto:

if(!password.matches("(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])")){
        username = "Error";
    }

pero dame un error que dice: secuencia de escape no válida.

Alguien me puede ayudar a resolver el problema y puede confirmar que es un patrón correct

Gracias, con \\ d no comete errores pero no coincide con una cadena como Paul% 88 ¿por qué?

Respuestas a la pregunta(2)

Su respuesta a la pregunta