{ s/ \G ( # $1 (?: # Substitution prevented by preceeding ">>" >> (?!>) [^\n]* \n >>> [^\n]* \n | (?! >> ) [^\n]* \n )* ) >>> ( # $2 [^\n]* \n ) # Substitution supressed by following ">>". (?! >> (?!>)) /${1}PYTHON_PROMPT${2}/xg; print; print("==========\n"); }