$var=~s/(.*?)!\s*([+-]?)!(.*)/$1;$2;$3/g; ^^^^^^^^^^