I came up with an awk (gnu) one-liner, hope it helps:
awk 'NR==FNR{r=$0;next}/END$/&&!f{print;f=1;next}!f{print}/END$/&&f{print r $0;f=0}' RS="\0" zfile.txt RS="\n" file
let's test a little bit:
kent$ cat file
snmptt_conf_files = <<END
/etc/snmp/file-1
/etc/snmp/file-2
...
...
/etc/snmp/file-n
END
keep1
keep2
keep3
snmptt_conf_files = <<END
/etc/snmp/file-1
/etc/snmp/file-2
...
...
/etc/snmp/file-n
END
kent$ cat zfile.txt
replace1
replace2
replace3
now execute the one-liner:
kent$ awk 'NR==FNR{r=$0;next}/END$/&&!f{print;f=1;next}!f{print}/END$/&&f{print r $0;f=0}' RS="\0" zfile.txt RS="\n" file
snmptt_conf_files = <<END
replace1
replace2
replace3
END
keep1
keep2
keep3
snmptt_conf_files = <<END
replace1
replace2
replace3
END
it seems the one-liner does the job for you. regarding the regex resources, I think if you google it , you will get >10k result. take one you like and learning by doing.