Perl regular expression to check string ending

Hi,
I am trying to write a regular expression in perl to check if the string end's with "numbers-numbers" or "-numbers".

I experimented something like m/\d*-\d*$/ , but this is not solving my problem.
Can anyone help me in writing this expression?

my $str1 = "abcd123-4565";
my $str2 = "abcd-4565";

if ( $str1 =~ /\D+\d+-\d+$/ ) {
   print "Match pattern1 str1\n";
}

if ( $str1 =~ /\D+-\d+$/ ) {
   print "Match pattern2 str1\n";
}

if ( $str2 =~ /\D+\d+-\d+$/ ) {
   print "Match pattern1 str2\n";
}

if ( $str2 =~ /\D+-\d+$/ ) {
   print "Match pattern2 str2\n";
}

Use:

m/(\d+)?-\d+$/

Note that will match

lastword 23-45
theword -45
abc23-34
asdf-23