$rx_4333 = /(?=\d{4}$)
(?: 4 (?: 3 (?: 3 (?: 3
| [4-9]
)
| [4-9]
)
| [4-9]
)
| [5-9]
)
/x
####
$rx_4333 = /(?=\d{4}$)
(?: 4 (?: 3 (?: 3 [3-9]
| [4-9]
)
| [4-9]
)
| [5-9]
)
$/x
####
my @digits = $ProdBuild =~ /([0-9])([0-9])([0-9])([0-9])$/;
my $rx = '(?=\\d{4}$)';
for (@digits) {
$rx .= "(?:$_";
}
for (reverse @digits) {
local $_ = $_+1;
$rx .= '|' . ($_ == 9 ? 9 : "[$_-9]") if $_ != 10;
$rx .= ')';
}
# 4333 gives (?=\d{4}$)(?:4(?:3(?:3(?:3|[4-9])|[4-9])|[4-9])|[5-9])
foreach (@pattern) {
print("Match: $_\n") if /$rx/;
}