Well...
I believe really the question I should be asking is "can multiple lines of a script be patched reliably without a regexp?"
Let's say I want to do a fix for all the occurances of Spell(Blah,0) in game scripts. There are... quite a few of these, so using REPLACE_BCS_BLOCK is not a terribly compelling suggestion.
Now let's take the script... DEGARD2.BCS. There are two different occurances of HaveSpell(0), which should cast DIFFERENT spells. Therefore, a simple REPLACE_TEXTUALLY of this line is out. What I could do though is take the other lines around it too. So,
COPY_EXISTING ~DEGARD2.BCS~ ~override~
DECOMPILE_BCS_TO_BAF
REPLACE_TEXTUALLY "!General(LastSeenBy(Myself),HUMANOID)
HaveSpell(0)" "!General(LastSeenBy(Myself),HUMANOID)
HaveSpell(WIZARD_HOLD_MONSTER)"
COMPILE_BAF_TO_BCS
But, I'm not sure how reliable this would be to use, since I had issues with REPLACE_TEXTUALLY failing on multiple DLG file actions... issues which were solved by adding a regexp inbetween the actions, if you recall.
Support for multiple lines in script patching like this, if it's not already there, would greatly improve the possibilities for script patching, and pretty much make REPLACE_BCS_BLOCK obsolete, which would thrill me to bits because I've always found it rather clunky. If the solution's just "copy/paste several lines straight out the BAF and it'll always work", then, uh, sorry.