В вашем примере нет причин проверять This is the matching pattern
, только конечное регулярное выражение:
$ cat tst.awk
BEGIN { FS=": "; OFS=", " }
{ f[$1] = $2 }
/this is the end pattern/ {
print f["tag1"], f["tag2"]
delete f
}
$ awk -f tst.awk file
value1, value2
valuea, valueb
valuexx, valueyy