Sequência de escape inválida \ d

Estou tentando verificar se uma senha contém pelo menos uma letra minúscula, uma maiúscula, um dígito e um caractere especia

Estou tentando isso:

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

mas me dê um erro dizendo: sequência de escape inválida.

Alguém pode me ajudar a resolver o problema e pode confirmar que esse é um padrão corret

Obrigado, o whit não cometeu um erro, mas não corresponde a uma string como Paul% 88 por quê?

questionAnswers(2)

yourAnswerToTheQuestion