There is no need to match non-greedily on the post-decimal digits:
s{ (-? \d+ \.? \d* ) --? \d+ \. \d* }{$1}x
should be fine.
_____________________________________________________
Jeff japhy Pinyan,
P.L., P.M., P.O.D, X.S.:
Perl,
regex,
and perlhacker How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart