O monstro regexp contém aspas simples, que terminam a string citada:
find ... '<(?:resource)...(?:"[^"]*"|\'[^\']*\'|[\w\-.:]+))?)*\s*/?>'
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^
As barras invertidas não funcionam para escapar de algo entre aspas simples, por isso as partes marcadas são citadas, o material fora delas não é. Com os caracteres especiais lá, o shell fica confuso. (Bem, eu ficaria confuso se tentasse analisar isso à mão.)
Você poderia contornar isso, pelo menos alterando aspas duplas, para que as barras invertidas pudessem ser usadas para escapar das aspas duplas dentro da string.
Outra forma seria abusar da substituição de comandos e dos documentos aqui, que devem ser capazes de lidar com aspas sem escapar:
$ string=$(cat <<'EOF'
!"#%&/()[]{}'-.,*
EOF
)
$ echo "$string"
!"#%&/()[]{}'-.,*