in reply to Misunderstood regexp

(-?[.\d]+(?!<-)) should help

$stra = "52-52.5"; $strb = "25.3-26.5"; $strc = "25.3--26.5"; $strd = "-25.3-26.5"; $stre = "-25.3--26.5"; ($str1) = $stra =~ /(-?[.\d]+(?!<-))/; print $str1, $/; ($str1) = $strb =~ /(-?[.\d]+(?!<-))/; print $str1, $/; ($str1) = $strc =~ /(-?[.\d]+(?!<-))/; print $str1, $/; ($str1) = $strd =~ /(-?[.\d]+(?!<-))/; print $str1, $/; ($str1) = $stre =~ /(-?[.\d]+(?!<-))/; print $str1, $/;

Update: added examples