#!/usr/bin/perl use strict; use warnings; for my $s (qw/123+456++78+90++ +123++456+78++90+/) {    my $z='\+'; # "+" ist ein Suchzeichen in Regulären Ausdrücken und muß mit "\" auskommentiert werden.    my $e;    # topeg mit Permatching    ($e=$s)=~s/(?<=[^$z])$z(?=[^$z])/q/g;    print "topeg mit Prematching:\n$s => $e\n";    # topeg mit Ersetzung    ($e=$s)=~s/([^$z])$z([^$z])/$1q$2/g;    print "topeg mit Ersetzung:\n$s => $e\n";    # Dubu mit negativem Lookbehind/-forward    ($e=$s)=~s/(? $e\n";    # Dubu mit erweiterter Ersetzung    ($e=$s)=~s/(^|[^$z])$z([^$z]|$)/$1q$2/g;    print "Dubu mit erweiterter Ersetzung:\n$s => $e\n";    print "\n"; } __END__ topeg mit Prematching: 123+456++78+90++ => 123q456++78q90++ topeg mit Ersetzung: 123+456++78+90++ => 123q456++78q90++ Dubu mit negativem Lookbehind/-forward: 123+456++78+90++ => 123q456++78q90++ Dubu mit erweiterter Ersetzung: 123+456++78+90++ => 123q456++78q90++ topeg mit Prematching: +123++456+78++90+ => +123++456q78++90+ topeg mit Ersetzung: +123++456+78++90+ => +123++456q78++90+ Dubu mit negativem Lookbehind/-forward: +123++456+78++90+ => q123++456q78++90q Dubu mit erweiterter Ersetzung: +123++456+78++90+ => q123++456q78++90q