$ alias perle
alias perle='perl -Mstrict -Mwarnings -Mautodie=:all -MCarp::Always -E'
####
$ perle '
my $base = "1231600014";
my @possibles = qw{
012212316000140
01221231600014
2212316000140
1221231600014
221231600014
1231600014
};
my $re = qr{${base}\d?$};
for (@possibles) {
if (/$re/) {
say "$_ MATCH";
}
else {
say "$_ NO MATCH";
}
}
'
012212316000140 MATCH
01221231600014 MATCH
2212316000140 MATCH
1221231600014 MATCH
221231600014 MATCH
1231600014 MATCH
####
$ perle '
my @possibles = qw{
012212316000140
01221231600014
2212316000140
1221231600014
221231600014
1231600014
};
my %re_map = (
10 => qr{^(\d{10})$},
12 => qr{^\d{2}(\d{10})$},
13 => qr{^(?:(?:18|19|20|21|22)(\d{10})\d|\d{3}(\d{10}))$},
14 => qr{^\d{4}(\d{10})$},
15 => qr{^\d{4}(\d{10})\d$},
);
for (@possibles) {
my $re = $re_map{+length};
/$re/ and say $1 // $2;
}
'
1231600014
1231600014
1231600014
1231600014
1231600014
1231600014