in reply to Need to append and replace for % sign in a variable string

I do not understand your overall question.

However, some specific comments on the OPed regexes:

Update:

c:\@Work\Perl\monks>perl -wMstrict -le "my $field2_b = 'abcd'; ;; my $find1 = '%'; if ($field2_b ne '') { s/[^$find1]?^/\^/, s/[$find1]?$/+/ for $field2 +_b }; print qq{'$field2_b'}; " '^abcd+'
Please see perlre, perlrecharclass, perlrequick, and especially perlretut.


Give a man a fish:  <%-(-(-(-<