Provavelmente awk seria a ferramenta shell mais rápida aqui. Você poderia tentar:
awk "/$regex1/ { ++r1 }
/$regex2/ { ++r2 }"'
END { print "regex1:",r1 "\nregex2:",r2 }' <infile
É claro que se você precisar usar perl expressões regulares como a sua pergunta, realmente perl é a única resposta. No entanto, awk usa expressões estendidas (como grep -E ) em oposição às básicas.