$s = 'now is the time for all good etc.;' $bef = 'before'; $mid = 'middle'; $aft = 'after'; Regexp: result (was it expected?) s/.+/$bef$mid$aft/: beforemiddleafter (expected result, if no brackets) s/.+/$bef[$mid$aft/: (SYNTAX ERROR: "scalar found where operator expected"...) s/.+/[$bef]$mid$aft/: [before]middleafter (expected) s/.+/$bef[$mid]$aft/: after (huh?) s/.+/$bef$mid[$aft]/: before (whaa?)