Olá, sou iniciante e estou tentando usar o atributo pattern para impedir valores diferente do esperado e indicar erro ao usuário, entretendo não está funcionando no firefox, chrome, edge e opera. trecho do código:
<form name="teste">
<input type="text" name="cpf" maxlength="14" required pattern="\d{3}\.?\d{3}\.?\d{3}-?\d{2}" placeholder="000.000.000-00">
<input type="submit" value="Enviar">
</form>
<form name="teste2">
<input type="text" name="cep" maxlength="9" required pattern="[0-9]{5}-[0-9]{3}" placeholder="00000-000">
<input type="submit" value="Enviar">
</form>
O que estou fazendo de errado?