return $_[0] =~ m!^
(?:\d?[A-Z]{1,2}\d{0,2}/)? # out of area prefix /
(?:\d?[A-Z]{1,2}\d{1,5}) # main prefix one (required) - lengthened for special calls
- [A-Z]{1,5} # callsign letters (required)
+ [A-Z]{1,8} # callsign letters (required)
(?:-(?:\d{1,2}))? # - nn possibly (eg G8BPQ-8)
(?:/[0-9A-Z]{1,7})? # / another prefix, callsign or special label (including /MM, /P as well as /EURO or /LGT) possibly
$!x;
if (ref $b eq 'ARRAY') {
$t = $b->[1] - $b->[0];
} else {
- if ($adds >= $b) {
+ if ($adds && $adds >= $b) {
$t = $adds - $b;
$adds = shift;
} else {