# have $1 contain everything but the leading "0:" # and the trailing ",$intOrFloat" ... in this case ",4.00" # http://search.cpan.org/~nwclark/perl-5.8.3/pod/perlretut.pod $intOrFloat = qr/^[+-]?\ *(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/; $_ = "0:20,1.00,g,1.00;65,4.00,g,4.00"; /0:(.)+,$intOrFloat/ and warn $1;