From your description it sounds like this is what you're trying to do:
$0 ~ beg_ere {
inBlock = 1
}
inBlock {
lines[++numLines] = $0
if ( $0 ~ end_ere ) {
delta = ( showpwr ? 0 : 1 )
for ( lineNr=(1+delta); lineNr<=(numLines-delta); lineNr++ ) {
sub(pn_ere, "", lines[lineNr])
print lines[lineNr]
}
inBlock = numLines = 0
}
}
but obviously I couldn't test it as you didn't provide any sample input/output in your question and the code in your question isn't a minimal, complete script that could be executed.