... the code extracts everything prior to the first dash. I need the entire expression ...
I don't know if | Evidently you're still stuck on the "extraction" part, but if so, something like this might work:
c:\@Work\Perl\monks>perl -wMstrict -le
"my $line = qq{foo \n ACCESSION NUMBER: 0001144204-09-017358 bar};
print qq{[[$line]]};
;;
my $rx_acc_num = qr{ \d+ (?: - \d+)* }xms;
;;
my $acc_num;
if ($line =~ m{ ^ \s* ACCESSION \s* NUMBER: \s* ($rx_acc_num) }xms) {
$acc_num = $1;
$acc_num =~ tr/-//d;
}
print qq{'$acc_num'};
"
[[foo
ACCESSION NUMBER: 0001144204-09-017358 bar]]
'000114420409017358'
Update: Please see perlre, perlretut, and perlrequick.
Give a man a fish: <%-{-{-{-<