Não é possível declarar dois pattern em uma tag html, se usa a | para criar diferentes opções. Com a opção do usuário poder colocar o CPF ou o CNPJ, o código fica assim:
<input name="cpf" id="cpf" class="campo__escrita campo__escrita--menor" required type="text" minlength="11" maxlength="14"
pattern="
\d{3}\.?\d{3}\.?\d{3}-?\d{2} |
\d{2}\.?\d{3}\.?\/?\d{4}-?\d{2}"
/>