>861
こんな感じかい?

$_= '>>1-100';
if ( />>(\d+)((-)(\d*))?/ ){
 if    ( $4 ){ print "$1$2"; }  # >>n-n
 elsif ( $3 ){ print "$1$3"; }  # >>n-
 else        { print "$1"  ; }  # >>n
}