Server IP : 85.214.239.14 / Your IP : 3.147.57.197 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/perl5/Regexp/Common/ |
Upload File : |
package Regexp::Common::zip; use 5.10.0; use strict; use warnings; no warnings 'syntax'; use Regexp::Common qw /pattern clean no_defaults/; our $VERSION = '2017060201'; # # Prefer '[0-9]' over \d, because the latter may include more # in Unicode string. # # # ISO and Cept codes. ISO code is the second column, Cept code is # the third. First column matches either. # # http://cept.org/ecc/topics/numbering-networks/numbering-related- # cooperation/the-cept-countries-joining-year-to-cept, # -cept-and-iso-country-codes,-e164-and-e212-country-codes # (http://bit.ly/1Ue268b) # my %code = ( Australia => [qw /AUS? AU AUS/], Austria => [qw /AU?T AT AUT/], Belgium => [qw /BE? BE B/], Denmark => [qw /DK DK DK/], France => [qw /FR? FR F/], Germany => [qw /DE? DE D/], Greenland => [qw /GL GL GL/], Italy => [qw /IT? IT I/], Liechtenstein => [qw /LIE? LI LIE/], Luxembourg => [qw /LU? LU L/], Monaco => [qw /MC MC MC/], Netherlands => [qw /NL NL NL/], Norway => [qw /NO? NO N/], 'San Marino' => [qw /SM SM SM/], Spain => [qw /ES? ES E/], Switzerland => [qw /CH CH CH/], USA => [qw /USA? US USA/], 'Vatican City' => [qw /VA VA VA/], ); # Returns the empty string if the argument is undefined, the argument otherwise. sub __ {defined $_ [0] ? $_ [0] : ""} # Used for allowable options. If the value starts with 'y', the option is # required ("{1,1}" is returned, if the value starts with 'n', the option # is disallowed ("{0,0}" is returned), otherwise, the option is allowed, # but not required ("{0,1}" is returned). sub _t { if (defined $_ [0]) { if ($_ [0] =~ /^y/i) {return "{1,1}"} if ($_ [0] =~ /^n/i) {return "{0,0}"} } "{0,1}" } # Returns the (sub)pattern for the country named '$name', and the # -country option '$country'. sub _c { my ($name, $country) = @_; if (defined $country && $country ne "") { if ($country eq 'iso') {return $code {$name} [1]} if ($country eq 'cept') {return $code {$name} [2]} return $country; } $code {$name} [0] } my %zip = ( # # Postal codes are four digits, but not all combinations are used. # # Valid codes from: # https://en.wikipedia.org/wiki/List_of_postal_codes_in_Austria # Austria => "(?k:1(?:[0-8][0-9][0-9]|90[01])" . "|2(?:[0-3][0-9][0-9]|" . "4(?:0[0-9]|1[0-3]|2[1-5]|3[1-9]|[4-6][0-9]|7[0-5]|" . "8[1-9]|9[0-9])|" . "[5-7][0-9][0-9]|" . "8(?:[0-7][0-9]|8[01]))" . "|3(?:0(?:0[1-9]|[1-9][0-9])|" . "[12][0-9][0-9]|" . "3(?:[0-2][0-9]|3[0-5]|[4-9][0-9])|" . "[4-8][0-9][0-9]|" . "9(?:[0-6][0-9]|7[0-3]))" . "|4(?:[01][0-9][0-9]|" . "2(?:[0-8][0-9]|9[0-4])|" . "3(?:0[0-3]|[1-8][0-9]|9[0-2])|" . "4(?:[0-1][0-9]|2[01]|3[1-9]|[4-9][0-9])|" . "[5-8][0-9][0-9]|" . "9(?:[0-7][0-9]|8[0-5]))" . "|5(?:0[0-9][0-9]|" . "1(?:0[0-9]|1[0-4]|[23][0-9]|4[0-5]|5[1-9]|[6-9][0-9])|" . "2(?:0[0-5]|1[1-9]|[2-7][0-9]|8[0-3])|" . "3(?:0[0-3]|1[01]|2[1-9]|[34][0-9]|5[01]|60)|" . "[4-6][0-9][0-9]|" . "7(?:[0-6][0-9]|7[01]))" . "|6(?:[0-5][0-9][0-9]|" . "6(?:[0-8][0-9]|9[01])|" . "[78][0-9][0-9]|" . "9(?:[0-8][0-9]|9[0-3]))" . "|7(?:[0-3][0-9][0-9]|" . "4(?:0[0-9]|1[0-3]|2[1-9]|[3-9][0-9])|" . "5(?:[0-6][0-9]|7[0-3]))" . "|8(?:[0-2][0-9][0-9]|" . "3(?:[0-5][0-9]|6[0-3]|8[0-5])|" . "4(?:0[1-9]|[1-9][0-9])|" . "[5-8][0-9][0-9]|" . "9(?:[0-8][0-9]|9[0-3]))" . "|9(?:[0-6][0-9][0-9]|" . "7(?:[0-7][0-9]|8[0-2])|" . "8(?:[0-6][0-9]|7[0-3])|" . "9(?:[0-8][0-9]|9[0-2]))" . ")", # # Postal codes of the form: 'DDDD', with the first digit representing # the province; the others distribution sectors. Postal codes do not # start with a zero. Not all combinations are in use. # # Data from http://download.geonames.org/export/zip/BE.zip # Belgium => "(?k:1(?:0(?:0[05-9]|1[0-2]|20|3[01]|4[013-57-9]|50|60|70|8[0-3]|90)|" . "1(?:0[05]|10|20|30|40|50|60|70|80|90)|" . "2(?:0[01]|1[02])|" . "3(?:0[01]|1[05]|2[05]|3[0-2]|4[0-28]|5[07]|6[07]|70|80|90)|" . "4(?:0[0-24]|1[04]|2[018]|3[05]|40|5[07]|6[01]|" . "7[0-46]|80|9[05])|" . "5(?:0[0-2]|4[017]|60|70)|" . "6(?:0[0-2]|20|30|40|5[0-4]|7[0134])|" . "7(?:0[0-3]|3[01]|4[0-25]|5[05]|6[01]|70|8[05]|90)|" . "8(?:0[04]|18|20|3[01]|40|5[0-3]|6[01]|80)|" . "9(?:10|3[0-4]|50|70|8[0-2]))" . "|2(?:0(?:00|18|20|30|40|50|60|70)|" . "1(?:00|10|40|50|60|70|80)|" . "2(?:00|2[0-3]|3[05]|4[023]|50|60|7[05]|8[08]|90)|" . "3(?:00|10|2[0-38]|30|40|50|60|70|8[0-27]|90)|" . "4(?:00|3[01]|40|50|60|70|80|9[01])|" . "5(?:00|20|3[01]|4[07]|50|60|70|80|90)|" . "6(?:00|10|2[07]|30|40|50|60)|" . "8(?:0[01]|1[12]|20|30|4[05]|50|6[01]|70|80|90)|" . "9(?:00|10|20|30|40|50|60|70|80|90))" . "|3(?:0(?:0[01]|1[028]|20|40|5[0-4]|6[01]|7[018]|80|90)|" . "1(?:1[018]|2[08]|30|40|50|9[01])|" . "2(?:0[0-2]|1[0-2]|2[01]|7[0-2]|9[034])|" . "3(?:00|2[01]|50|60|70|8[014]|9[01])|" . "4(?:0[014]|40|5[04]|6[01]|7[0-3])|" . "5(?:0[01]|1[0-2]|20|30|4[05]|50|60|70|8[0-3]|90)|" . "6(?:00|2[01]|3[01]|40|50|6[058]|70|80|90)|" . "7(?:00|17|2[0-4]|3[02]|4[026]|70|9[0-38])|" . "8(?:0[036]|3[0-2]|40|50|70|9[01])|" . "9(?:00|10|20|30|4[015]|50|60|7[01]|80|90))" . "|4(?:0(?:00|20|3[0-2]|4[0-2]|5[0-3]|90)|" . "1(?:0[0-2]|2[0-2]|30|4[01]|51|6[0-3]|7[01]|8[01]|90)|" . "2(?:1[07-9]|5[02-47]|6[013]|8[07])|" . "3(?:00|17|4[027]|5[017]|6[07])|" . "4(?:00|20|3[0-2]|5[0-38]|60|70|80)|" . "5(?:00|20|3[07]|40|5[07]|60|7[07]|90)|" . "6(?:0[0-26-8]|10|2[0134]|3[0-3]|5[0-4]|7[0-2]|8[0-4]|90)|" . "7(?:0[01]|1[01]|2[018]|3[01]|50|6[01]|7[01]|8[02-4]|9[01])|" . "8(?:0[0-2]|2[01]|3[0147]|4[015]|5[0-2]|6[01]|7[07]|80|90)|" . "9(?:00|10|20|50|60|70|8[037]|90))" . "|5(?:0(?:0[0-4]|2[0-24]|3[0-2]|60|70|8[01])|" . "1(?:0[01]|40|50|70|90)|" . "3(?:00|10|3[02-46]|40|5[0-4]|6[0-4]|7[02467]|80)|" . "5(?:0[0-4]|2[0-4]|3[07]|4[0-4]|5[05]|6[0-4]|7[0-6]|80|90)|" . "6(?:00|2[01]|30|4[0146]|5[01]|60|70|80))" . "|6(?:0(?:0[01]|10|20|3[0-2]|4[0-4]|6[01])|" . "1(?:1[01]|20|4[0-2]|50|8[0-3])|" . "2(?:00|1[01]|2[0-4]|3[08]|40|50|80)|" . "4(?:4[01]|6[0-4]|70)|" . "5(?:00|11|3[0-46]|4[023]|6[07]|9[0-46])|" . "6(?:00|3[07]|4[02]|6[0-36]|7[0-4]|8[016-8]|9[028])|" . "7(?:0[046]|17|2[0134]|30|4[0-37]|50|6[0-279]|8[0-2]|9[0-2])|" . "8(?:00|1[0-3]|2[0134]|3[0-468]|40|5[0-36]|60|70|8[07]|90)|" . "9(?:00|2[0-2479]|4[01]|5[0-3]|60|7[0-2]|8[02-467]|9[07]))" . "|7(?:0(?:00|1[0-2]|2[0-24]|3[0-4]|4[01]|50|6[0-3]|70|80|90)|" . "1(?:00|10|20|3[0134]|4[01]|60|70|8[01]|9[01])|" . "3(?:0[01]|2[0-2]|3[0-4]|40|50|70|8[027]|90)|" . "5(?:0[0-46]|2[0-2]|3[0-468]|4[0238])|" . "6(?:0[0-48]|1[018]|2[0-4]|4[0-3])|" . "7(?:00|1[12]|30|4[023]|50|60|8[0-4])|" . "8(?:0[0-4]|1[0-2]|2[23]|30|50|6[0-46]|70|80|90)|" . "9(?:0[01346]|1[0-2]|4[0-3]|5[01]|7[0-3]))" . "|8(?:0(?:00|20)|" . "2(?:00|1[01])|" . "3(?:0[01]|10|40|7[07]|80)|" . "4(?:00|2[01]|3[0-4]|50|60|70|80|90)|" . "5(?:0[01]|1[01]|20|3[01]|40|5[0-4]|60|7[023]|8[0-37])|" . "6(?:00|10|20|30|4[07]|50|60|70|80|9[01])|" . "7(?:00|10|20|30|40|5[05]|60|70|80|9[0-3])|" . "8(?:00|10|20|30|40|5[01]|60|70|80|90)|" . "9(?:0[02468]|20|30|40|5[0-46-8]|7[028]|80))" . "|9(?:0(?:00|3[0-2]|4[0-2]|5[0-2]|60|70|80|90)|" . "1(?:00|1[12]|20|30|40|50|60|70|8[05]|90)|" . "2(?:00|20|30|40|5[05]|60|70|80|90)|" . "3(?:0[08]|10|20|40)|" . "4(?:0[0-46]|20|5[01]|7[023])|" . "5(?:0[06]|2[01]|5[0-2]|7[0-2])|" . "6(?:00|20|3[06]|6[017]|8[018]|90)|" . "7(?:00|50|7[0-2]|90)|" . "8(?:00|10|20|3[01]|40|50|60|70|8[01]|90)|" . "9(?:00|10|2[01]|3[0-2]|40|50|6[018]|7[01]|8[0-28]|9[0-2]))" . ")", # # Postal codes of the form: 'DDDD', with the first digit representing # the distribution region, the second digit the distribution district. # Postal codes do not start with a zero. Postal codes starting with '39' # are in Greenland, and not included in the pattern. # Denmark => "(?k:0(?:800|" . "9(?:00|17|60|99))" . "|1(?:0(?:00|5[0-9]|6[0-9]|7[0-4]|9[2358])|" . "1(?:0[0-7]|1[0-9]|2[0-9]|3[01]|4[078]|5[0-9]|6[0-24-9]|" . "7[0-5])|" . "2(?:0[0-9]|1[013-9]|2[01]|40|5[013-79]|6[013-8]|7[01]|91)|" . "3(?:0[0-46-9]|1[0-9]|2[0-9]|5[02-9]|6[0-9]|7[01])|" . "4(?:0[0-36-9]|1[0-9]|2[0-9]|3[0-9]|4[018]|5[0-9]|" . "6[02-46-8]|7[0-2])|" . "5(?:00|13|3[23]|5[0-9]|6[0-46-9]|7[0-7]|9[29])|" . "6(?:0[0-46-9]|1[0-9]|2[0-4]|3[0-5]|5[0-9]|6[0-9]|7[0-7]|99)|" . "7(?:0[0-9]|1[0-24-9]|2[0-9]|3[0-9]|49|5[0-9]|6[0-6]|" . "7[0-57]|8[05-7]|9[09])|" . "8(?:0[0-9]|1[0-9]|2[02-9]|5[0-7]|6[0-8]|7[0-9])|" . "9(?:0[0-689]|1[0-7]|2[0-8]|5[0-9]|6[0-7]|7[0-4]))" . "|2(?:000|" . "1(?:00|50)|" . "200|" . "300|" . "4(?:00|50)|" . "500|" . "6(?:0[05]|10|2[05]|3[05]|40|50|6[05]|70|80|90)|" . "7(?:00|20|30|40|50|6[05]|70|91)|" . "8(?:00|20|30|40|50|60|70|80)|" . "9(?:00|20|30|42|50|60|70|80|90))" . "|3(?:0(?:00|50|60|70|80)|" . "1(?:00|20|40|50)|" . "2(?:00|10|20|30|50)|" . "3(?:00|10|20|30|60|70|90)|" . "4(?:00|50|60|80|90)|" . "5(?:00|20|40|50)|" . "6(?:00|30|50|60|70)|" . "7(?:00|20|30|40|51|60|70|82|90))" . "|4(?:0(?:00|30|40|50|60|70)|" . "1(?:00|30|40|60|7[134]|80|90)|" . "2(?:00|20|30|4[1-3]|50|6[12]|70|81|9[1356])|" . "3(?:00|20|30|40|50|60|70|90)|" . "4(?:00|20|40|50|60|70|80|90)|" . "5(?:00|20|3[24]|40|50|60|7[1-3]|8[13]|9[1-3])|" . "6(?:00|2[1-3]|32|40|5[2-4]|60|7[1-3]|8[1-4]|90)|" . "7(?:00|20|3[356]|50|60|7[1-3]|80|9[1-3])|" . "8(?:00|40|50|6[23]|7[1-4]|80|9[1245])|" . "9(?:00|1[23]|20|30|4[134]|5[1-3]|60|70|83|90))" . "|5(?:000|" . "2(?:00|10|20|30|40|50|60|70|90)|" . "3(?:00|20|30|50|70|80|90)|" . "4(?:00|50|6[2-46]|7[14]|85|9[12])|" . "5(?:00|40|50|60|80|9[12])|" . "6(?:00|10|20|31|42|72|83|90)|" . "7(?:00|50|62|7[12]|92)|" . "8(?:00|5[346]|63|7[14]|8[1-4]|92)|" . "9(?:00|3[25]|53|60|70|85))" . "|6(?:0(?:00|40|5[12]|64|70|9[1-4])|" . "100|" . "2(?:00|30|40|61|70|80)|" . "3(?:00|10|20|30|40|60|72|92)|" . "4(?:00|30|40|70)|" . "5(?:00|10|20|3[45]|41|60|80)|" . "6(?:00|2[1-3]|30|40|50|60|70|8[23]|90)|" . "7(?:0[05]|1[05]|20|31|40|5[23]|60|71|80|92)|" . "8(?:00|18|23|30|40|5[1-57]|62|70|80|93)|" . "9(?:00|20|33|40|50|60|7[13]|80|90))" . "|7(?:0(?:0[07]|80)|" . "1(?:00|20|30|40|50|60|7[13]|8[2-4]|90)|" . "2(?:00|50|60|70|80)|" . "3(?:00|2[13]|30|6[12])|" . "4(?:00|30|4[12]|51|70|80|90)|" . "5(?:00|40|50|60|70)|" . "6(?:00|20|50|60|73|80)|" . "7(?:00|30|4[12]|5[25]|60|70|90)|" . "8(?:00|30|40|50|60|70|84)|" . "9(?:00|50|60|70|80|90))" . "|8(?:000|" . "2(?:00|10|20|30|4[05]|50|60|70)|" . "3(?:0[05]|10|20|30|40|5[05]|6[12]|70|8[0-2])|" . "4(?:00|10|20|44|50|6[24]|7[12])|" . "5(?:00|20|30|4[134]|50|60|70|8[156]|92)|" . "6(?:00|20|32|4[13]|5[34]|60|70|80)|" . "7(?:00|2[1-3]|32|40|5[12]|6[2356]|8[13])|" . "8(?:00|3[0-2]|40|50|60|70|8[1-3])|" . "9(?:00|20|30|40|50|6[013]|70|8[13]|90))" . "|9(?:000|" . "2(?:00|10|20|30|40|60|70|80|93)|" . "3(?:00|10|20|30|40|52|62|70|8[0-2])|" . "4(?:00|30|40|60|80|9[023])|" . "5(?:00|10|20|30|41|50|60|7[45])|" . "6(?:00|10|20|3[12]|40|70|81|90)|" . "7(?:00|40|50|60)|" . "8(?:00|30|50|70|81)|" . "9(?:00|40|70|8[12]|90))" . ")", # # 5 Digit postal code, with leading 0s. # # Codes starting with 980 are reserved for Monaco, and not recognized # by the pattern. # # Data from: http://download.geonames.org/export/zip/FR.zip # France => "(?k:0(?:1(?:0(?:0[0-9]|1[0-9]|20|59|6[019]|90)|1(?:0[0-9]|" . "1[0-25-7]|2[0-9]|30|40|5[0-58]|60|7[0-4]|90)|" . "2(?:0[0-468]|1[0-367]|20|30|40|50|60|70|80|90)|" . "3(?:0[0-36]|10|20|30|40|50|6[0569]|70|80|90)|4(?:00|" . "10|20|30|4[0-3]|50|60|70|80)|5(?:0[0-68]|10|40|50|60|" . "70|80|90)|6(?:0[0-46]|3[02378]|40|60|80)|7(?:0[0-8]|" . "10|50)|8(?:00|51)|9(?:21|60|90))|" . "2(?:0(?:0[0-9]|1[0-9]|2[05])|1(?:0[0-9]|10|20|30|40|5[01]|" . "60|70|90)|2(?:0[0-9]|10|20|30|40|50|60|70|90)|" . "3(?:0[0-39]|1[045]|2[0-79]|3[01]|40|50|60|70|80|90)|" . "4(?:0[0-79]|10|20|30|40|50|60|70|80|90)|5(?:00|10|20|" . "40|50|70|80|90)|6(?:0[0-49]|10|20|30|40|50|70|80|90)|" . "7(?:00|20|60|90)|8(?:00|10|20|30|40|50|60|70|80)|" . "93[09])|" . "3(?:0(?:0[03-8]|1[0-9]|21)|1(?:0[0-9]|10|20|30|40|50|60|" . "70|90)|2(?:0[0-9]|10|20|30|40|50|60|70|90)|" . "3(?:0[0-79]|1[01459]|2[019]|30|40|50|60|70|80|90)|" . "4(?:0[0-3569]|10|20|30|40|5[02]|60|70)|5(?:00|10)|" . "6(?:00|30)|700|800)|" . "4(?:0(?:0[0-69]|1[0-9]|29)|1(?:0[0-7]|1[09]|20|30|40|50|" . "60|70|80|90)|2(?:0[0-39]|10|20|30|40|50|60|70|80|90)|" . "3(?:0[01]|10|20|30|40|50|60|70|80)|4(?:00|10|20)|" . "5(?:00|10|30)|6(?:00|60)|700|8(?:00|50|60|70)|99[05])|" . "5(?:0(?:0[0-8]|1[0-24-69])|1(?:0[0-57]|10|20|30|40|50|60|" . "70|90)|2(?:0[0-289]|20|30|40|50|60|90)|3(?:00|10|20|" . "30|40|50|80)|4(?:00|60|70|80)|5(?:00|60)|600|700|800)|" . "6(?:0(?:0[0-9]|1[0-36]|3[2-6]|4[4-9]|5[03]|7[1389]|8[2-5]|" . "99)|1(?:0[0-35-9]|1[03-79]|2[156]|3[0-35-79]|4[0-3]|" . "5[0-7]|6[0-247]|7[0-357]|8[0-79]|90)|2(?:0[0-69]|" . "1[0-2]|2[0-9]|3[0-9]|4[0-2]|5[0-579]|60|7[0-2]|" . "8[1-46-9]|9[02-59])|3(?:0[0-69]|10|20|30|4[0-589]|" . "5[2-47-9]|6[049]|7[0-369]|80|9[0-2])|4(?:0[0-8]|1[04]|" . "20|30|40|50|60|70|80)|5(?:0[0-8]|1[013-8]|20|3[0-245]|" . "40|50|60|70|80|90)|6(?:0[0-79]|10|20|3[1-4]|40|50|" . "6[06]|70|90)|7(?:0[0-689]|10|2[13]|30|40|50|90)|" . "8(?:0[0-68]|10|2[569]|3[013]|50|91)|9(?:0[1-69]|" . "1[02-5]|2[12589]|50|99))|" . "7(?:00[0-7]|1(?:0[0-9]|10|20|3[0-9]|40|50|60|70|90)|" . "2(?:0[0-9]|10|20|30|40|50|60|70|90)|3(?:0[0-9]|10|20|" . "30|40|50|60|70|80)|4(?:0[0-9]|10|30|40|50|60|70)|" . "5(?:0[0-9]|10|20|30|60|70|80|90)|6(?:00|10|30|60|90)|" . "7(?:00|90)|800)|" . "8(?:0(?:0[0-6]|1[0134]|9[089])|1(?:0[1-79]|10|20|30|40|50|" . "60|70|90)|2(?:0[0-9]|10|20|30|40|50|60|70|90)|" . "3(?:0[02-5]|10|20|30|50|60|70|80|90)|4(?:00|10|30|40|" . "50|60)|500|600|700|800)|" . "9(?:0(?:0[0-47-9]|1[4-7])|1(?:0[0-59]|10|20|30|40|60|90)|" . "2(?:0[019]|10|20|30|40|50|70|90)|3(?:0[01]|10|20|30|" . "40|50|90)|4(?:0[01]|20|60)|500|600|700|800))" . "|1(?:0(?:0(?:0[0-9]|1[0-58]|2[56]|3[0-2]|42|8[0189]|9[126])|" . "1(?:0[0-5]|10|2[0-28]|30|40|5[0-4]|60|70|80|90)|" . "2(?:0[0-28]|10|20|30|40|50|60|70|80|90)|3(?:00|10|20|" . "30|40|5[0-35]|60|7[01]|80|90)|4(?:0[0-4]|10|20|3[0-3]|" . "40|50)|5(?:00|10)|60[0-356]|700|800|9(?:0[12]|10))|" . "1(?:0(?:0[0-579]|1[0-25-7]|2[0-29])|1(?:0[0-9]|10|20|30|" . "40|50|60|70|90)|2(?:0[0-589]|10|20|30|40|50|60|70|90)|" . "3(?:0[0134]|10|20|30|40|50|60|70|80|90)|4(?:0[0-29]|" . "10|20|30|40|5[1-3]|80|9[0-4])|5(?:00|10|40|60|70|80|" . "90)|6(?:00|10|20)|7(?:00|8[12459]|90)|8(?:0[0235-8]|" . "1[06]|23|3[3568]|48|5[05]|60|7[05-8]|8[05]|9[08]))|" . "2(?:0(?:0[0-357-9]|19|2[0-9]|3[0-59]|40)|1(?:0[0-4689]|10|" . "20|30|40|50|60|70|90)|2(?:0[0-4]|10|20|30|40|50|60|70|" . "90)|3(?:00|10|20|30|40|50|60|70|80|90)|4(?:0[0-2]|10|" . "20|30|40|50|60|70|80|90)|5(?:00|10|20|40|50|60|80)|" . "6(?:00|20|30|40)|7(?:00|20|40|80)|8(?:00|50))|" . "3(?:0(?:0[0-9]|1[0-6]|20|6[67]|8[0589]|9[0-9])|1(?:0[0-9]|" . "1[0-9]|2[0-46-9]|3[0-389]|4[0-289]|5[0-35-9]|" . "6[013-589]|7[078]|8[0-2]|9[0-26])|2(?:0[0-3579]|" . "1[013-9]|2[0-8]|3[0-69]|4[0-589]|5[0-9]|6[0-9]|7[0-9]|" . "8[0-24-9]|9[0-9])|3(?:0[0-46-9]|1[0-9]|2[0-8]|" . "3[0-589]|4[02-8]|5[0-24-79]|6[0-46-9]|7[0-24-9]|" . "8[0-9]|9[0-79])|4(?:0[0-46]|1[0-7]|2[014-68]|3[0-245]|" . "4[0-8]|5[0-8]|6[02-47]|7[0-48]|8[0-49]|9[03])|" . "5(?:0[0-3]|1[0-4689]|2[0-589]|3[0-389]|4[0-35-9]|" . "5[0-289]|6[06-8]|7[02]|8[013]|9[0-49])|6(?:0[0-9]|" . "1[0-24-79]|2[015-9]|3[0-357]|4[0-369]|5[0-689]|6[0-9]|" . "7[0-8]|8[013-57-9]|9[0-9])|7(?:0[0-589]|1[02-9]|" . "2[0-9]|3[0-3]|4[0-79]|5[0-257-9]|6[046]|7[0-9]|" . "8[0-59]|9[0-9])|8(?:0[0-9]|1[02-5]|2[0-589]|3[0-689]|" . "4[0-24-7]|5[0-9]|6[0-478]|70|8[01379]|9[05])|" . "9(?:0[024-8]|1[01]|2[0-4]|3[0-37]|4[0-2]|50|60|80|90))|" . "4(?:0(?:0[05-9]|1[0-9]|2[03-9]|3[0-9]|4[05-8]|5[0-489]|" . "6[1-7]|7[04-9]|8[1-69]|9[0-9])|1(?:0[0-9]|1[0-47]|" . "2[0135-8]|30|40|50|6[0-258]|70|90)|2(?:0[0-57-9]|10|" . "20|30|40|50|60|70|80|90)|3(?:10|20|30|40|50|60|70|80|" . "90)|4(?:0[0-9]|10|20|30|40|50|6[0-29]|70|80|90)|" . "5(?:0[0-589]|10|20|30|40|50|70|90)|6(?:0[0-3]|10|20|" . "30|40|5[0-49]|70|80|90)|7(?:00|10|30|40|50|60|70|80|" . "9[01])|8(?:0[0-9]|10|30|40|50|60|80)|9(?:0[1-9]|" . "1[0-69]|2[0-6]|3[0-4]|4[09]|50|60|70|80|90))|" . "5(?:0(?:0[0-8]|1[0-57-9])|1(?:0[0-79]|10|20|30|40|50|60|" . "70|90)|2(?:00|10|2[09]|30|40|50|60|70|90)|3(?:00|10|" . "20|40|50|80)|4(?:00|30)|5(?:00|90)|600|700|800)|" . "6(?:0(?:0[0-8]|1[0-9]|2[0-6])|1(?:0[0-9]|1[0-3]|2[01]|30|" . "40|50|60|70|90)|2(?:00|10|20|30|40|50|60|70|90)|" . "3(?:00|10|20|30|40|50|60|70|80|90)|4(?:00|10|20|30|40|" . "50|60|70|80|90)|5(?:00|10|60|70|90)|6(?:00|20)|7(?:00|" . "10|20|30)|800|9(?:0[1-9]|1[0-9]|2[09]|5[0-59]|99))|" . "7(?:0(?:0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-5]|5[1-6]|" . "7[1-689]|8[6-9])|1(?:0[0-9]|1[0-9]|2[013]|3[0236-9]|" . "40|50|60|70|8[0-9]|90)|2(?:0[0-9]|1[0145]|20|30|40|50|" . "60|70|8[1459]|90)|3(?:0[0-9]|1[0-4]|20|30|40|50|60|70|" . "80|90)|4(?:00|1[0-69]|20|30|4[0-69]|50|60|70|80|90)|" . "5(?:0[0-49]|10|20|30|40|50|60|70|80|90)|6(?:00|10|20|" . "30|40|50|70|90)|7(?:00|30|40|50|70|80)|8(?:00|10|40|" . "70|80|90)|9(?:20|40))|" . "8(?:0(?:0[0-7]|1[2-69]|2[0-9]|3[0-79])|1(?:0[0-9]|10|20|" . "30|40|50|60|70|90)|2(?:0[0-7]|10|20|30|40|50|60|70|" . "90)|3(?:00|10|20|30|40|50|60|70|80|90)|4(?:00|10)|" . "5(?:00|10|20|70)|600|700|800|9(?:1[01]|2[02-4]|3[459]|" . "4[015]|98))|" . "9(?:0(?:0[0-79]|1[1257-9]|33)|1(?:0[0-9]|1[01346-9]|20|30|" . "40|50|60|70|90)|2(?:0[0-489]|10|20|3[0-2]|40|50|60|70|" . "90)|3(?:00|1[0-9]|20|30|40|50|6[01]|70|80|90)|4(?:00|" . "10|30|50|60|70|90)|5(?:00|10|20|50|60)|600|700|800))" . "|2(?:0(?:0(?:00|90)|1(?:00|1[0-9]|2[1-9]|3[0-9]|4[0-8]|5[0-37]|" . "6[02-9]|7[0-9]|8[0-9]|9[0-57-9])|2(?:00|1[2-57-9]|" . "2[0-9]|3[0-9]|4[02-8]|5[0-369]|60|7[02569]|8[7-9]|" . "9[0-9])|3(?:0[2-69]|11)|4(?:0[1-35-9]|1[0-46-9])|" . "5(?:0[1-4]|3[78])|6(?:0[014]|11|20)|70[0-3]|900)|" . "1(?:0(?:0[0-9]|1[0-9]|2[1-9]|3[0-9]|4[0-9]|5[1-9]|" . "6[0-35-9]|7[0-9]|8[013-689]|9[2378])|1(?:10|2[01]|30|" . "40|50|60|70|90)|2(?:0[0-9]|1[09]|20|30|40|50|6[0-2]|" . "70|90)|3(?:0[0-59]|10|20|30|40|50|60|70|80|90)|" . "4(?:0[0-39]|10|20|30|40|50|60|70|90)|5(?:0[0-269]|10|" . "20|30|40|50|60|70|80|90)|6(?:0[0-49]|10|30|40|90)|" . "7(?:0[0-59]|19|60)|8(?:0[0-369]|20|50)|9(?:00|10|98))|" . "2(?:0(?:0[0-5]|1[4-7]|2[1-79]|3[1-5]|4[1-69]|7[09]|8[09]|" . "9[1-35689])|1(?:0[0-9]|1[01]|20|30|40|50|60|70|" . "9[0-69])|2(?:0[0-69]|10|20|30|40|50|60|70|90)|" . "3(?:0[0-9]|10|20|30|40|50|60|70|80|90)|4(?:0[02-59]|" . "10|20|30|40|50|60|70|80|90)|5(?:0[0-59]|10|20|30|40|" . "50|60|70|80|90)|6(?:0[02-79]|10|20|30|40|50|60|80|90)|" . "7(?:00|10|20|30|40|50|70|80)|8(?:00|10|20|30|60|70)|" . "9(?:30|40|50|60|70|80))|" . "3(?:0(?:0[0-9]|1[13-6]|20)|1(?:00|10|20|30|40|50|60|70|" . "90)|2(?:00|10|20|30|40|50|60|70|90)|3(?:00|20|40|50|" . "60|80)|4(?:00|20|30|50|60|80)|500|600|700|800)|" . "4(?:0(?:0[0-579]|1[0-79]|2[0249]|5[0-359]|60)|" . "1(?:0[0-24-9]|1[0-4]|2[0-2]|30|40|50|60|70|90)|" . "2(?:0[0-689]|1[02]|20|30|40|50|60|70|90)|3(?:00|10|20|" . "30|40|50|60|70|80|90)|4(?:00|10|20|30|40|50|60|70|80|" . "90)|5(?:00|10|20|30|40|50|60|70|80|90)|6(?:00|10|20|" . "30|40|50|60|80)|7(?:00|5[0-2589])|800|9(?:1[0235]|26))|" . "5(?:0(?:0[0-9]|1[0-9]|2[0-79]|3[0-9]|4[0-9]|5[0-246-9]|" . "6[0-389]|7[0-359]|8[02-79]|9[089])|1(?:1[0-9]|20|30|" . "40|50|60|70|90)|2(?:0[0-9]|1[0-9]|20|30|40|50|60|70|" . "90)|3(?:0[0-49]|10|20|30|40|50|60|70|80|90)|" . "4(?:0[0-69]|10|20|30|40|50|6[0-29]|7[09]|80|90)|" . "5(?:0[0-489]|10|20|30|50|60|70|80)|6(?:0[0-9]|10|20|" . "30|40|50|60|80|90)|7(?:0[0-26-9]|20|50|70|90)|8(?:00|" . "20|40|70)|9(?:09|20|3[0-3]|60))|" . "6(?:0(?:0[0-9]|1[0-5]|2[1-9]|3[0-2])|1(?:0[0-9]|1[019]|20|" . "3[01]|40|50|60|70|9[09])|2(?:0[0-9]|1[056]|20|30|" . "4[0-49]|50|60|70|90)|3(?:0[0-49]|10|20|30|40|50|80|" . "90)|4(?:0[0-29]|10|20|50|60|70)|5(?:0[0-49]|10|30|40|" . "60|70)|6(?:0[0-39]|20)|7(?:0[0-29]|30|40|50|6[01]|70|" . "80|90)|80[0-29]|9(?:0[1-79]|5[0-68]))|" . "7(?:0(?:0[0-9]|1[0235-9]|2[1-356]|3[0-9]|40|9[0-9])|" . "1(?:0[0-9]|10|2[0-27]|3[0-8]|40|50|60|70|80|90)|" . "2(?:0[0-9]|10|20|30|40|50|60|70|90)|3(?:0[0-9]|10|20|" . "30|40|50|60|70|80|90)|4(?:0[0-79]|10|20|30|40|50|60|" . "70|80|90)|5(?:0[0-9]|10|20|30|40|50|60|70|80|90)|" . "6(?:0[07]|10|20|30|40|50|60|70|80|90)|7(?:0[0-35]|10|" . "20|30|40|50|60|70|80|90)|8(?:00|10|20|30|50|60|70|90)|" . "9(?:09|1[014]|2[0489]|3[0-369]|4[09]|50))|" . "8(?:0(?:0[0-9]|1[189]|2[3-69]|3[3-9]|4[04]|8[08])|" . "1(?:0[0-689]|1[0-49]|20|3[0-3]|40|50|60|70|90)|" . "2(?:0[0-3579]|1[01]|20|3[0-24]|40|50|60|70|90)|" . "3(?:0[0-59]|10|20|30|40|50|60|80)|4(?:0[0-49]|10|" . "8[019])|50[01]|6(?:00|3[0-3679])|70[0-379]|800|9(?:01|" . "10|20|3[0-35]|44|50))|" . "9(?:0(?:00|18|80)|1(?:0[0-9]|2[0-59]|40|50|60|7[0-4679]|" . "8[0-79]|9[0-369])|2(?:0[06-9]|1[0-37-9]|2[0-57-9]|" . "3[138]|4[0-26]|5[0239]|60|70|8[029]|9[09])|3(?:00|10|" . "2[0-8]|3[0-7]|40|50|60|70|80|9[0-9])|4(?:0[0-4679]|" . "1[0-49]|20|30|40|5[05]|60|70|80|90)|5(?:00|10|20|30|" . "40|5[0-9]|6[013]|70|90)|6(?:0[0269]|10|20|30|40|50|60|" . "7[0-489]|8[0-2489]|90)|7(?:00|10|20|30|40|50|60|70|80|" . "90)|8(?:0[0-46-9]|10|2[0457]|3[03-79]|40|50|60|70|80|" . "90)|9(?:00|10|20|30|40|50|70|80|90)))" . "|3(?:0(?:0(?:0[0-36-9]|1[0-9]|2[0-589]|3[1-69]|4[04589]|" . "5[015])|1(?:0[0-79]|1[0-2459]|2[0-9]|3[0-49]|40|50|60|" . "70|90)|2(?:0[0-79]|10|20|30|40|5[0-35]|60|70|90)|" . "3(?:0[0-2]|1[01389]|20|30|40|50|60|80|90)|4(?:0[0-69]|" . "10|20|30|40|50|60|70|80|90)|5(?:00|10|20|30|40|60|70|" . "80)|6(?:00|10|20|30|40|50|60|70)|7(?:0[0-3]|20|30|40|" . "50|60|70)|8(?:00|20|40|70)|9(?:0[013-8]|1[0-48]|" . "2[0-59]|3[124-79]|4[0-37]|6[09]|7[125]|80))|" . "1(?:0(?:0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-9]|" . "7[0-9]|8[0-24-689]|9[0-9])|1(?:0[0-4679]|1[02]|2[0-9]|" . "3[0-9]|4[0-29]|5[0-259]|60|70|8[09]|90)|2(?:0[013-5]|" . "10|20|30|4[0-59]|50|60|70|8[09]|90)|3(?:00|1[02-579]|" . "2[0-2569]|30|40|50|60|70|8[09]|90)|4(?:0[0-6]|10|20|" . "3[02]|40|50|60|70|8[09]|90)|5(?:0[03-7]|1[02]|" . "2[0-249]|30|40|50|60|70|8[09]|90)|6(?:0[0-689]|2[019]|" . "50|60|7[0-9]|8[1-359]|92)|7(?:0[0-9]|1[1256]|50|" . "7[0-4679]|80|90)|8(?:0[0-79]|10|20|3[0-29]|40|50|60|" . "70|80)|9(?:0[0-3]|31|4[57]|5[078]|6[02]|9[89]))|" . "2(?:0(?:0[0-57-9]|1[0-46-9]|2[0-2])|1(?:00|10|2[09]|30|40|" . "50|60|70|90)|2(?:0[019]|20|30|40|50|60|70|90)|3(?:00|" . "10|20|30|40|50|60|70|80|90)|4(?:00|10|20|30|40|50|60|" . "80|90)|5(?:0[0-259]|50)|600|7(?:00|20|30)|8(?:00|10))|" . "3(?:0(?:0[0-24-9]|1[0-259]|2[013-9]|3[0-8]|4[0-37-9]|" . "5[0-9]|6[0-9]|7[0-9]|8[0-9]|9[0-9])|1(?:00|1[02-6]|" . "2[013-7]|3[038]|4[018]|5[0-35]|6[04-79]|7[0-5]|" . "8[05-7]|9[0-3])|2(?:00|1[0-49]|20|30|40|50|60|" . "7[0-489]|9[0-5])|3(?:0[0569]|1[0-49]|2[0-4679]|3[05]|" . "4[01]|50|60|70|80|9[0-5])|4(?:0[0-59]|10|20|30|40|" . "5[0-2]|6[019]|70|80|9[0-25])|5(?:0[0-79]|1[05]|" . "2[0-79]|30|40|50|6[0-5]|70|80|90)|6(?:0[0-9]|1[0-5]|" . "2[015-79]|40|5[02]|60|70|8[089]|9[0-9])|7(?:0[0-9]|10|" . "20|3[0-9]|4[017]|50|60|70|80|90)|8(?:0[01]|10|20|30|" . "40|50|60|70|8[0-7]|90)|9(?:0[0-79]|1[0-589]|20|30|50|" . "70|80|9[08]))|" . "4(?:0(?:0[0-46-9]|1[0-2]|2[3-8]|3[02-57-9]|4[0-35689]|" . "5[13-68]|6[0-8]|7[0-9]|8[0235-79]|9[0-9])|1(?:1[0-9]|" . "20|3[0-27-9]|40|50|60|7[0-489]|8[13467]|9[0-9])|" . "2(?:0[0-479]|10|20|30|40|50|6[0-7]|7[04]|80|9[03-9])|" . "3(?:0[0-579]|10|20|30|40|50|60|70|80|9[0-46-9])|" . "4(?:0[0-49]|10|20|3[013-589]|40|50|60|7[037]|80|90)|" . "5(?:0[0-8]|1[03-8]|2[0-69]|3[04-79]|4[03-5]|50|6[04]|" . "70|90)|6(?:00|10|20|30|50|60|7[01]|80|90)|7(?:0[0-2]|" . "10|2[05]|30|4[0-27-9]|5[013]|60|70|90)|8(?:00|10|20|" . "30|50|7[1-5]|80)|9(?:00|2[0356]|3[2-57-9]|4[02-489]|" . "5[4-9]|6[0-2457]|7[02-57]|8[0-79]|90))|" . "5(?:0(?:0[0-9]|1[0-24-68]|2[0-46-9]|3[0-59]|4[02-79]|" . "5[0-57-9]|6[3-79]|7[013689]|8[0-9]|9[0-49])|" . "1(?:0[1-689]|1[134]|20|3[0-7]|40|50|6[0-469]|" . "7[0-24-7]|90)|2(?:0[0-57-9]|10|2[01]|3[056]|40|50|60|" . "70|90)|3(?:0[0-69]|10|20|30|4[0-259]|50|60|70|80|90)|" . "4(?:0[0-9]|1[0-9]|20|3[0-359]|40|50|60|70|80|90)|" . "5(?:0[0-79]|1[0-9]|2[01]|3[0-389]|40|50|60|7[1-46-9]|" . "80|90)|6(?:0[0-356]|10|20|30|40|5[0-39]|60|80|90)|" . "7(?:0[0-9]|11|20|30|4[0-46]|50|6[0-9]|7[0-2]|80)|" . "8(?:0[0-3]|3[0-3]|50|70|90)|9(?:0[0-9]|1[1-9]|2[01]|" . "60|98))|" . "6(?:0(?:0[0-9]|1[0-9]|2[0-9]|3[23])|1(?:0[0-579]|10|20|" . "3[01]|40|50|60|70|80|90)|2(?:00|10|20|30|40|5[05]|60|" . "70|90)|3(?:0[01]|10|20|30|40|50|60|70)|400|50[015]|" . "600|700|800|91[05])|" . "7(?:0(?:0[089]|1[0-9]|2[05-9]|3[2-589]|4[0-57-9]|5[89]|" . "6[01]|7[1-9]|8[0-29]|9[5-9])|1(?:00|10|20|30|40|5[02]|" . "60|7[0-59]|90)|2(?:0[04-69]|10|20|30|40|50|60|70|90)|" . "3(?:0[0-69]|10|2[01]|30|40|50|60|70|80|90)|" . "4(?:0[0-49]|20|60)|5(?:0[0-29]|10|2[01]|30|4[0-29]|" . "5[0-6])|60[0-29]|70[0-359]|800|9(?:1[0-357]|2[124-9]|" . "3[12]|4[12]))|" . "8(?:0(?:0[0-9]|1[0-9]|2[1-9]|3[0-79]|4[0-9]|5[0-4689]|" . "6[135-79]|7[047]|8[019]|9[0-36-9])|1(?:00|1[02-489]|" . "2[0-2]|3[048]|4[0246-8]|5[02-49]|6[0-59]|7[0-469]|80|" . "9[0167])|2(?:0[0-9]|1[016-9]|20|3[0-26]|4[0-469]|" . "5[06]|6[019]|70|80|9[0-35-79])|3(?:0[0-579]|1[1-579]|" . "2[0-2679]|3[0-4]|4[0-35-79]|5[0-46-9]|6[01]|70|80|90)|" . "4(?:0[0-9]|10|20|3[0-79]|40|50|60|70|80|90)|" . "5(?:0[0-9]|1[0169]|2[0-469]|30|40|5[0-79]|60|70|80|" . "9[01])|6(?:0[0-39]|10|20|30|40|50|60|70|80|90)|" . "7(?:0[0-26-9]|10|3[01]|40|50|6[01379]|70|8[0-249]|90)|" . "8(?:0[0-3]|1[67]|21|30|40|50|60|70|80|90)|9(?:00|13|" . "2[0167]|30|4[0134]|50|60|70|80))|" . "9(?:0(?:0[0-9]|1[056]|2[19]|3[0-9])|1(?:0[0-9]|10|20|30|" . "40|50|60|7[01]|8[019]|90)|2(?:0[0-9]|1[019]|20|30|40|" . "50|6[01]|70|90)|3(?:0[0-9]|10|20|30|50|60|70|80)|" . "4(?:0[0-9]|10|60)|5(?:0[0-2]|20|70)|60[0-359]|700|" . "80[0-9]))" . "|4(?:0(?:0(?:0[0-6]|1[1-35-9]|2[1-7]|90)|1(?:0[0-8]|1[058]|20|" . "30|4[01]|50|6[01]|70|80|90)|2(?:0[0-2]|10|20|3[0-259]|" . "40|50|60|70|8[0-26]|90)|3(?:0[0159]|10|20|30|50|60|70|" . "80|90)|4(?:00|10|20|30|40|6[05]|80)|5(?:0[0-2]|10|30|" . "50|60)|6(?:0[0-2]|30|60)|70[015]|80[015]|99[0-4])|" . "1(?:0(?:0[0-9]|1[0-35689]|2[0235689]|3[3-5]|4[23])|" . "1(?:0[0-3569]|10|2[0-2]|30|40|5[01]|60|70|90)|" . "2(?:0[0-7]|10|20|30|40|50|6[01]|70|90)|3(?:00|10|20|" . "30|5[03-57]|60|70)|40[0-26]|500|600|700|800|" . "9(?:0[13-689]|1[03-589]|2[145]|3[0-36]|4[1-3589]|" . "5[018]|6[03-8]|7[0-6]))|" . "2(?:0(?:0[0-9]|1[0-8]|2[1-9]|3[013]|4[1-357-9]|5[0589])|" . "1(?:00|1[014]|2[02-79]|3[01]|40|5[0235]|6[0-9]|" . "7[03469]|90)|2(?:10|20|30|40|60|7[0-35-79]|90)|" . "3(?:0[0-48]|1[0-58]|2[0-38]|3[02-59]|40|5[013-69]|60|" . "70|80|90)|4(?:0[0-9]|1[0-2]|20|30|40|50|60|70|8[0469]|" . "90)|5(?:0[0-359]|10|20|30|40|50|60|70|80|90)|" . "6(?:0[0-9]|10|20|30|40|5[013]|60|70|80)|7(?:0[0-579]|" . "20|40|50|80)|8(?:0[0-9]|10|20|30|40|90)|9(?:20|40|" . "5[0-589]|6[1-9]|90))|" . "3(?:0(?:0[0-689]|1[0-479])|1(?:0[0-3]|10|20|30|40|50|60|" . "70|90)|2(?:0[0-3]|10|20|30|40|50|60|70|90)|3(?:00|20|" . "30|40|50|60|70|80|90)|4(?:00|10|20|30|40|50|90)|" . "5(?:00|10|20|30|50|80|90)|6(?:00|20)|7(?:00|50|70)|" . "8(?:00|10))|" . "4(?:0(?:0[0-9]|1[0-9]|2[0-4]|3[2-68]|4[0-267]|9[02-579])|" . "1(?:0[0-79]|1[05-9]|2[0-469]|30|4[0-69]|5[0-9]|60|" . "7[069]|8[4-8]|9[0-689])|2(?:0[0-59]|1[0-79]|20|" . "3[0-69]|4[0-59]|50|6[0-358]|7[02-7]|90)|3(?:0[0-9]|" . "1[0-9]|2[0-9]|3[0-9]|4[0-69]|5[0-36-9]|60|7[0-39]|80|" . "90)|4(?:0[0-9]|1[02]|20|30|40|50|60|7[0-9]|8[0-4]|90)|" . "5(?:0[0-69]|10|2[0-2]|30|40|50|60|70|80|90)|" . "6(?:0[0-69]|1[0-8]|20|30|40|50|60|70|80|90)|" . "7(?:0[0-36-9]|10|20|30|40|50|60|70|80)|8(?:0[0-9]|" . "1[0-9]|2[1-49]|30|40|50|60|80)|9(?:00|1[1-9]|2[1-9]|" . "3[1-9]|4[124579]|5[1-9]|6[3-9]|7[1-8]|8[0-69]))|" . "5(?:0(?:0[0-9]|1[0-25-79]|2[13589]|3[0-58]|4[0-6]|" . "5[236-8]|6[0-57-9]|7[1-57-9]|8[1278])|1(?:00|10|" . "2[0-259]|30|4[0-79]|50|6[0-689]|70|90)|2(?:0[0-9]|" . "1[0-4]|20|30|40|50|60|70|90)|3(?:0[02-8]|1[02]|20|" . "3[01]|40|60|70|80|90)|4(?:0[0-469]|10|20|3[0-3]|50|60|" . "70|80|90)|5(?:0[0-4]|10|20|30|50|60|70|90)|6(?:00|20|" . "30|40|5[0156]|80)|7(?:0[0-29]|20|30|40|50|60|" . "7[01457])|8(?:0[0-9]|11)|9(?:00|1[0-35-9]|2[0-79]|" . "3[0-8]|4[3-9]|5[0-7]|6[0-9]|7[0-9]|80))|" . "6(?:0(?:0[0-589]|1[04-9]|2[0-3]|9[01])|1(?:0[0-36]|10|20|" . "30|40|50|60|70|90)|2(?:00|10|20|30|40|50|60|70)|" . "3(?:00|10|20|30|40|50|60)|400|500|600|700|800)|" . "7(?:0(?:0[02-8]|13|2[03]|3[0-29])|1(?:10|20|30|40|50|60|" . "70|80|90)|2(?:0[0-57-9]|1[013]|20|30|40|50|60|70|90)|" . "3(?:0[0-57-9]|10|20|30|40|50|60|70|80|90)|4(?:00|10|" . "20|30|40|50|70|80)|5(?:0[0-2]|10|20|5[0-359])|600|700|" . "800|9(?:0[19]|1[0-8]|2[0-59]|31))|" . "8(?:00[0-35-9]|1(?:00|10|20|30|40|50|60|70|90)|2(?:00|10|" . "20|30|40|50|60|70)|3(?:00|10|20|30|40|70)|400|500|600|" . "700|800)|" . "9(?:0(?:0[0-46-9]|1[014-8]|2[0-468]|3[2356]|4[13-79]|" . "5[1-359]|66|7[0-29]|80)|1(?:0[0-79]|1[0-25-79]|" . "2[02-5]|3[05-79]|40|50|60|70|8[0-4]|90)|2(?:20|30|" . "4[0-59]|50|60|70|80|90)|3(?:0[0-9]|1[0-249]|2[0157-9]|" . "30|40|50|60|70|80|90)|4(?:0[0-689]|1[0-578]|2[015-8]|" . "30|40|5[068]|60|8[0146]|90)|5(?:0[0-59]|10|20|30|40|" . "60|70|90)|6(?:0[0-29]|10|20|30|40|50|60|70|80|90)|" . "7(?:00|10|30|40|50|70)|80[0-59]|9(?:0[56]|1[1-39]|" . "2[57]|3[347-9]|4[19])))" . "|5(?:0(?:0(?:0[0-9]|1[0-6]|50)|1(?:0[0-9]|1[03-5]|20|3[01]|40|" . "50|60|70|80|90)|2(?:0[0-9]|1[01]|20|30|40|50|60|70|" . "90)|3(?:0[0-9]|10|20|30|40|50|60|70|80|90)|" . "4(?:0[0-79]|10|20|30|4[0-24-9]|50|60|70|80|90)|5(?:00|" . "10|20|30|40|50|60|70|80|90)|6(?:00|10|20|30|40|5[12]|" . "60|70|80|90)|7(?:00|10|20|30|40|50|60|70)|8(?:00|10|" . "40|50|60|70|80|90)|95[018])|" . "1(?:0(?:0[015-9]|1[0-367]|2[12]|3[5-9]|4[1-3]|5[1-9]|" . "6[0-9]|7[0-79]|8[0-46-9]|9[025-79])|1(?:00|10|2[0-2]|" . "30|40|50|60|70|90)|2(?:0[0-9]|10|20|30|40|50|60|70|" . "90)|3(?:0[0-689]|1[089]|20|3[0-4]|4[09]|50|6[01]|70|" . "80|90)|4(?:0[01]|20|3[0-5]|50|60|70|80|90)|5(?:00|10|" . "20|30|7[1-3])|6(?:0[01]|6[2-4]|7[357-9]|8[2-9])|" . "7(?:00|1[35]|2[1-36])|8(?:0[01]|7[13]|8[46])|90[024])|" . "2(?:0(?:0[0-8]|1[1246])|1(?:0[0-9]|1[0-35]|20|30|40|50|60|" . "70|90)|2(?:0[0-9]|10|20|30|40|50|60|70|90)|3(?:0[01]|" . "10|20|30|40|60|70)|4(?:00|10)|50[0-2]|600|700|800|" . "9(?:0[1-6]|1[579]|20))|" . "3(?:0(?:0[0-9]|1[02-69]|2[0-2]|3[0-2]|6[0-39]|73|8[0-9]|" . "9[013-589])|1(?:0[0-59]|10|20|40|50|60|70|90)|" . "2(?:0[0-5]|10|20|30|40|50|60|70|90)|3(?:00|20|40|50|" . "60|70|80|90)|4(?:00|10|20|40|70|80)|5(?:00|40)|" . "6(?:0[0-2]|40)|700|8(?:00|1[01])|9(?:4[0-2]|5[01]|60|" . "7[01]))|" . "4(?:0(?:0[0-9]|1[0-7]|2[0-39]|3[125-9]|4[1-35-9]|5[2-46]|" . "6[2-4]|7[1-46]|82|9[6-8])|1(?:00|1[0-689]|2[0-39]|" . "3[0-689]|40|5[0-49]|60|70|8[0-69]|90)|2(?:0[0-69]|" . "1[01]|20|30|40|50|6[0-3]|7[0-39]|80|90)|3(?:0[0-59]|" . "1[0-29]|20|30|40|50|60|70|8[05]|90)|4(?:0[0-69]|" . "1[0-4]|2[05]|30|40|50|60|70|80|90)|5(?:0[0-79]|" . "1[0-79]|2[0-9]|30|40|50|60|70|80|90)|6(?:0[0-389]|10|" . "20|30|40|50|60|70|80|90)|7(?:0[0-689]|1[0-69]|20|30|" . "40|50|60|70|80|90)|8(?:0[0-3]|10|20|30|40|50|60|70|80|" . "90)|9(?:00|10|20|3[01349]|4[01]|50|60|70|80|90))|" . "5(?:0(?:0[0-35-8]|1[2-5]|2[01])|1(?:0[0-9]|1[0239]|20|30|" . "40|50|60|70|90)|2(?:0[0-35]|10|2[01]|30|40|50|60|" . "7[01]|90)|3(?:00|10|20)|4(?:00|30)|500|600|700|8(?:00|" . "40))|" . "6(?:0(?:0[0-9]|1[06-9]|2[09]|3[46-9])|1(?:0[0-9]|10|20|30|" . "40|50|60|7[0-589]|90)|2(?:0[01479]|19|20|3[019]|40|50|" . "60|7[0-79]|90)|3(?:0[0-9]|1[0-279]|2[0-9]|30|4[0-39]|" . "50|60|70|8[0-3]|90)|4(?:0[0-79]|1[0139]|20|30|40|50|" . "60|70|80|90)|5(?:0[0-469]|10|20|3[0-2569]|40|50|60|70|" . "80|90)|6(?:0[0-379]|10|20|30|40|50|60|70|80|90)|" . "7(?:0[0-59]|30|40|50|60|70|80)|8(?:0[0-59]|40|5[045]|" . "60|70|80|9[0-369])|9(?:0[0-39]|10|20|30|5[014679]|" . "7[0379]|98))|" . "7(?:0(?:0[03-9]|1[0-9]|2[0138]|3[0-8]|4[014-69]|5[0-4679]|" . "6[1-3]|7[0-9]|8[1-4])|1(?:0[0-689]|19|2[05-9]|3[0-3]|" . "4[0146-9]|5[0-579]|6[0-49]|7[05]|8[015]|9[0-39])|" . "2(?:0[0-9]|1[124-9]|20|3[0-4]|4[05]|5[05]|60|70|" . "8[0-39]|9[0-29])|3(?:0[0-49]|10|20|30|40|5[0-249]|" . "6[0-359]|7[0-39]|8[0-35]|90)|4(?:0[0-59]|1[025]|20|30|" . "4[05]|5[05]|60|70|80|90)|5(?:0[0-9]|1[05]|2[05]|3[05]|" . "40|50|6[05]|70|80|90)|6(?:0[0-9]|1[09]|20|3[05]|4[05]|" . "5[05]|60|70|8[05]|90)|7(?:0[0-59]|10|20|3[019]|4[078]|" . "5[167]|7[02478]|80|90)|8(?:0[013-59]|1[05]|20|30|40|" . "5[05]|6[05]|70|80|90)|9(?:05|1[0-3569]|2[05]|3[05]|40|" . "5[0-57-9]|60|7[0-489]|80|90))|" . "8(?:0(?:0[0-9]|1[3-9]|2[02-9]|3[3469])|1(?:10|20|30|40|50|" . "60|70|80|90)|2(?:0[0-9]|10|20|30|40|50|60|70|90)|" . "3(?:0[0-2]|10|20|30|40|50|60|70|80|90)|4(?:0[0-5]|10|" . "20|30|40|50|60|70|90)|5(?:0[0-38]|30)|6(?:00|4[0-39]|" . "60)|700|800)|" . "9(?:0(?:0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[1-9]|" . "6[0-3569]|7[0-489]|8[0-46-8]|9[127])|1(?:0[08]|1[0-9]|" . "2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-9]|7[0-9]|8[0-24-9]|" . "9[0-589])|2(?:0[0237-9]|1[0-9]|2[0-79]|3[0-9]|4[0-79]|" . "5[0-589]|6[0-9]|7[0-57-9]|8[0-8]|9[02-79])|3(?:0[0-9]|" . "1[0-9]|2[0-2689]|3[0-9]|4[1569]|5[0189]|6[0-5]|" . "7[03-9]|8[0-3569]|9[0-39])|4(?:0[0-9]|1[0-369]|" . "2[0-24-9]|3[0-35-7]|4[0-9]|5[0-35-8]|6[0-8]|7[0-689]|" . "8[0-35-7]|9[0-7])|5(?:0[0-9]|10|2[02-49]|3[0-25-7]|" . "4[0-4]|5[0-57-9]|6[0-47-9]|7[0-3]|8[0-46-9]|90)|" . "6(?:0[0-8]|1[0-38]|20|3[0579]|40|5[0-9]|6[0-79]|" . "7[0-37]|8[0-35-79]|90)|7(?:0[0-9]|1[0-9]|2[0-367]|" . "3[0-5]|40|50|60|7[079]|8[0-57-9]|9[0-2])|8(?:00|" . "1[0-8]|20|3[0-289]|4[057-9]|5[0-39]|6[0-9]|7[0-8]|" . "8[0-579]|9[0-9])|9(?:00|10|20|3[0-3]|4[0-48]|5[0-2]|" . "6[0-57]|7[0-2569]|8[014]|9[08])))" . "|6(?:0(?:0(?:0[024-9]|1[0-9]|2[1-9]|3[15])|1(?:0[0-9]|1[0-9]|" . "2[0-36-9]|3[0-248]|4[019]|5[0357]|6[02]|7[035]|" . "8[013-5]|90)|2(?:0[0-9]|10|20|30|40|5[0-2]|60|7[01]|" . "8[01]|9[0-39])|3(?:0[0-9]|1[0-9]|2[0139]|3[02]|40|50|" . "60|70|80|90)|4(?:0[0-369]|10|20|3[0-7]|40|51|60|7[67]|" . "80|90)|5(?:0[0134689]|10|20|30|4[0-4]|5[0-2]|60|70|80|" . "90)|6(?:0[0237-9]|1[0-27-9]|20|3[1-57-9]|4[036-9]|50|" . "60|7[1247]|80|90)|7(?:00|1[01]|2[1-39]|3[0-24]|" . "4[0-59]|5[01]|6[125]|7[12679]|90)|8(?:0[0-5]|10|20|" . "3[1-3]|40|50|60|7[0-2]|80|90)|9(?:0[2389]|1[12]|" . "2[1-4]|3[0-2]|40|50|60|81))|" . "1(?:0(?:0[0-9]|1[1-9]|2[1-4]|4[12]|51)|1(?:0[0-79]|10|20|" . "30|40|50|60|70|90)|2(?:0[0-689]|10|20|30|40|50|60|70|" . "90)|3(?:0[0-6]|10|20|30|40|50|60|70|80|90)|4(?:00|10|" . "20|3[08]|4[08]|5[08]|70|90)|5(?:00|50|60|70)|600|" . "7(?:00|90)|8(?:00|91)|9(?:61|84|9[24]))|" . "2(?:0(?:0[0-57-9]|1[0-9]|2[0-9]|3[0-46]|5[1-59]|6[0-79]|" . "7[0-29]|8[019]|9[0-2])|1(?:0[0-9]|1[0-46-9]|2[0-46-9]|" . "3[0-246-9]|4[0-579]|5[0-35-9]|6[0-24-69]|7[023569]|" . "8[02579]|9[0-469])|2(?:0[0-79]|1[0-357-9]|2[0-68]|" . "3[0-2]|4[025-9]|5[0-9]|60|70|80|90)|3(?:0[0-9]|1[01]|" . "2[0-257]|3[0-6]|40|50|6[01]|70|80|90)|4(?:0[0-8]|" . "1[0-289]|20|30|40|5[0-39]|60|70|80|90)|5(?:0[0-9]|10|" . "20|30|40|50|60|7[05]|80|90)|6(?:0[0-4689]|10|20|30|40|" . "50|60|70|80|90)|7(?:0[0-29]|10|20|30|40|50|60|70|80|" . "90)|8(?:0[0-69]|10|20|30|40|50|60|70|8[0-29]|90)|" . "9(?:0[1-9]|10|2[0-39]|30|40|5[0-5]|6[05-9]|7[0-8]|80|" . "90))|" . "3(?:0(?:0[0-9]|1[0-9]|2[0-489]|3[0-9]|4[02-69]|5[014-8]|" . "6[34])|1(?:00|1[0-9]|2[02]|30|40|50|60|7[0-578]|90)|" . "2(?:0[0-6]|10|20|30|40|50|60|70|90)|3(?:0[0-8]|10|20|" . "30|40|50|60|70|80|90)|4(?:0[0-9]|10|20|30|40|50|60|70|" . "80|90)|5(?:0[0-6]|10|20|30|40|50|60|70|80|90)|6(?:00|" . "10|20|30|40|50|60|70|80|90)|7(?:00|10|20|30|40|50|60|" . "70|80|90)|8(?:0[0-48]|10|20|30|40|50|70|80|90)|9(?:00|" . "10|20|30|40|5[09]|6[0-9]|7[02]|80|90))|" . "4(?:0(?:0[0-46-8]|1[0-35-9]|2[0-47-9]|3[0-9]|4[0-46]|" . "5[0-9]|6[0-24]|7[1589]|8[0-2679]|90)|1(?:0[0-9]|" . "1[0-356]|2[0-2]|30|4[0-35-8]|50|60|70|8[1-57]|90)|" . "2(?:0[0-68]|10|20|3[0-8]|40|50|60|70|90)|3(?:0[0-47]|" . "10|20|30|40|50|60|70|90)|4(?:0[0-4]|10|20|30|40|50|60|" . "70|80|90)|5(?:0[0-6]|1[01]|20|30|60|70)|6(?:0[0-5]|40|" . "60|80)|7(?:0[0-5]|80)|8(?:00|11|70)|990)|" . "5(?:0(?:0[0-9]|1[03-8]|2[0-5])|1(?:0[0-8]|1[0-267]|20|30|" . "40|50|7[01]|90)|2(?:0[0-4]|20|30|40|50|60|70|90)|" . "3(?:0[0-37-9]|1[0-2]|2[01]|30|50|60|70|80|90)|" . "4(?:0[0-2]|10|2[019]|30|40|60|90)|5(?:0[0-3]|10|60|" . "90)|6(?:0[01]|60|70|90)|7(?:0[016]|10)|80[01]|" . "9(?:0[1-57]|1[124578]|2[01]|30|5[01]))|" . "6(?:0(?:0[0-6]|1[1-57-9]|2[015-9]|3[0-49]|46|50|70)|" . "1(?:0[0-3]|1[0-3]|2[0-3]|30|4[0145]|50|6[0-25]|70|80|" . "90)|2(?:0[0-2]|10|20|30|40|50|60|70|80|90)|3(?:0[0-2]|" . "10|20|3[01459]|40|50|60|70|80|90)|4(?:0[0-3]|10|" . "2[0-3]|30|40|50|60|70|80|90)|5(?:0[0-29]|10|30|40|50|" . "60|70)|6(?:0[0-24-69]|10|20|5[0-29]|6[04]|70|80|90)|" . "7(?:0[0-4]|20|30|40|5[015]|60)|8(?:00|20|3[0-26]|45|" . "5[0346]|6[036]|70)|9(?:06|21|3[13]|4[015]|5[019]|" . "6[0-8]|87))|" . "7(?:0(?:0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[3-6]|59|6[01457-9]|" . "7[013-7]|8[0-9]|9[0-3689])|1(?:0[029]|1[02-8]|2[0-69]|" . "3[0-378]|4[0-6]|5[0-258]|6[0-35-79]|7[0-3]|90)|" . "2(?:0[0-79]|1[0-9]|20|3[0-2459]|4[0-39]|50|6[0-29]|70|" . "80|90)|3(?:0[0-8]|1[0-289]|20|30|40|50|60|70|8[0-2]|" . "90)|4(?:0[0-57-9]|1[0-2]|20|30|4[01]|5[0-9]|60|70|80|" . "90)|5(?:0[0-79]|10|2[01]|30|4[0-2]|50|60|70|80|90)|" . "6(?:0[0-9]|10|20|30|40|50|60|70|80|90)|7(?:0[0-9]|10|" . "2[0-8]|30|50|60|70|90)|8(?:0[0-479]|10|20|3[1-4689]|" . "4[0-3]|50|60|70|80|9[12])|9(?:0[05-79]|1[13]|" . "2[0-35-8]|3[0-3]|4[2-489]|5[2357-9]|6[0-79]|7[024-9]|" . "8[0-6]|9[09]))|" . "8(?:0(?:0[0-9]|1[02-9]|2[0-79]|40|5[0-9]|6[0-9]|7[0-467]|" . "8[2-6]|9[0-379])|1(?:00|1[068]|2[014-8]|3[0-49]|40|" . "5[0-39]|60|7[0-3]|80|90)|2(?:00|10|2[01]|30|40|50|" . "6[0-5]|7[0-4]|80|90)|3(?:0[0-9]|1[0-7]|20|3[0-3]|40|" . "50|60|70|80|9[0-39])|4(?:00|10|20|40|60|70|80|90)|" . "5(?:0[0-49]|10|20|30|40|50|60|70|80|90)|6(?:00|10|20|" . "30|40|50|60|80|90)|7(?:0[0-5]|20|30|40|50|60|70|80|" . "90)|8(?:0[0-2469]|20|30|40|50|70|90)|9(?:10|2[013579]|" . "4[13-57-9]|50|6[08]|70|80|90))|" . "9(?:0(?:0[1-9]|6[124])|1(?:00|1[05]|2[04-69]|3[0-2469]|" . "4[0-578]|5[0-49]|6[01]|7[0-3]|9[0-259])|2(?:0[0-9]|" . "1[0-9]|2[05-9]|3[0279]|4[0-7]|5[0-35-9]|6[0-9]|" . "7[0-2569]|8[0-9]|9[0-4])|3(?:0[0-379]|1[0679]|" . "2[0-26-9]|3[06-9]|4[0-9]|5[0-9]|6[0-79]|7[0-3679]|" . "8[0459]|9[0-9])|4(?:0[0-689]|1[0-9]|2[0-9]|3[0-9]|" . "4[0-9]|5[0-9]|6[013-9]|7[024-9]|8[0-9]|9[0-35])|" . "5(?:0[0-359]|1[0-9]|20|3[01]|4[0-4]|5[0-3]|6[013-59]|" . "7[0-4689]|8[0-3]|9[0-5])|6(?:0[0-9]|1[0-3569]|2[0-9]|" . "3[0-9]|4[0-9]|5[0-9]|6[014579]|7[0-79]|8[024-79]|" . "9[0-46])|7(?:0[0-29]|14|2[0679]|3[0-25]|4[0-79]|5[15]|" . "60|7[01]|80|9[0-5])|8(?:0[0-689]|1[1-4679]|2[02-49]|" . "3[0-36]|4[01]|50|60|70|8[1-39]|9[01])|9(?:0[0-8]|10|" . "2[1-6]|3[0-9]|4[25-9]|5[1-57]|6[0-489]|70|98)))" . "|7(?:0(?:0(?:0[0-7]|1[349]|2[0-2]|30)|1(?:0[0-4]|10|20|30|40|" . "50|60|70|80|90)|2(?:0[0-4]|10|20|30|40|50|70|80|90)|" . "3(?:0[0-46]|10|20|60)|4(?:00|40)|500|600|700|80[07])|" . "1(?:0(?:0[0-9]|1[0-27-9]|2[0-9]|31|4[09])|1(?:0[0-9]|" . "1[08]|20|30|40|50|60|70|90)|2(?:0[0-69]|10|20|30|40|" . "50|60|70|90)|3(?:0[0-9]|10|2[0-8]|3[0-79]|40|50|60|70|" . "80|90)|4(?:0[0-57-9]|10|20|30|40|50|60|70|80|90)|" . "5(?:0[0-39]|10|20|30|40|50|70|80|90)|6(?:0[0-49]|20|" . "40|70|80)|7(?:00|10|40|60)|8(?:00|50|70|80)|9(?:60|" . "90))|" . "2(?:0(?:0[0-9]|1[013-689]|2[14-9]|3[02-9]|4[0-57-9]|" . "5[12589]|7[0-359]|8[0-9]|9[1-356])|1(?:0[09]|10|20|30|" . "40|50|60|70|90)|2(?:0[0-3568]|10|20|3[0-4679]|40|50|" . "60|70|90)|3(?:0[0-589]|10|20|30|40|50|60|70|80|90)|" . "4(?:0[0-79]|30|40|50|60|70)|5(?:00|10|30|40|50|60)|" . "6(?:00|10|50)|70[02-5]|800|90[28])|" . "3(?:0(?:0[0-9]|1[014-9]|2[0-24-6]|31|65|7[39]|89|9[14])|" . "1(?:0[0-9]|10|2[0-479]|30|40|5[0-579]|60|70|9[0-39])|" . "2(?:0[0-9]|1[0-2469]|2[013-59]|3[0-259]|40|50|" . "6[01459]|7[067]|9[0-2459])|3(?:0[0-39]|10|2[0-29]|30|" . "40|50|60|7[0-9]|8[12]|90)|4(?:0[0-39]|10|20|40|50|60|" . "70|80|9[0-49])|5(?:00|20|30|40|50|7[0-39]|90)|" . "6(?:0[0-49]|10|20|30|40|60|70)|7(?:0[0-589]|10|20|30|" . "90)|8(?:0[0-24-9]|70))|" . "4(?:0(?:0[0-9]|1[0-6]|2[0145]|3[46]|4[01]|5[459])|" . "1(?:0[0-9]|1[0-3]|20|3[0-79]|40|5[0-9]|6[0-69]|70|90)|" . "2(?:0[0-9]|10|20|30|40|50|60|70|90)|3(?:0[0-57-9]|" . "1[014]|20|3[0-47-9]|40|50|60|7[0-4]|80|90)|" . "4(?:0[0-59]|10|20|30|40|50|60|70|80|90)|5(?:0[0-39]|" . "20|40|50|60|70|80)|6(?:0[0-79]|50|60)|7(?:0[0-469]|" . "40)|8(?:0[0-9]|90)|9(?:10|20|30|4[0-69]|5[0-4]|" . "6[0-469]|70|8[124-9]|9[013-9]))|" . "5(?:0(?:0[0-9]|1[0-9]|2[0134689]|3[0-689]|4[0-9]|5[1-689]|" . "6[0-9]|7[2-9]|8[0-9]|9[02-7])|1(?:0[0-9]|1[0-689]|" . "2[02-9]|3[01489]|4[0-24]|5[0-9]|6[1-9]|7[0-24679]|" . "8[0-24689]|9[124-8])|2(?:0[1-9]|1[0-9]|2[0-46-9]|" . "3[0-9]|4[01348]|5[0236]|6[0-69]|7[02589]|8[0-48]|" . "9[0-24589])|3(?:0[2-9]|1[0-57-9]|2[0-9]|3[0357-9]|" . "4[0-589]|5[0235-9]|6[0-7]|7[0-689]|8[0-9]|9[0-24-9])|" . "4(?:0[0-35-8]|1[0-35-9]|2[0-9]|3[0-24-9]|4[0-79]|" . "5[0-9]|6[02-8]|7[0-9]|8[0-8]|9[0-35-9])|5(?:0[2-9]|" . "1[0-2]|2[1-8]|3[3-8]|4[0-8]|5[0-8]|6[0-9]|7[0-9]|" . "8[0-9]|9[1-9])|6(?:0[0-9]|1[0-46-9]|2[0-9]|3[0-9]|" . "4[0-46-9]|5[0-9]|6[0-57-9]|7[013-57-9]|8[0-357-9]|" . "9[0-46-9])|7(?:0[0-35-9]|1[02-9]|2[0-79]|3[0-247-9]|" . "4[0-357-9]|5[03-79]|6[1-9]|7[0-358]|8[0-69]|9[04689])|" . "8(?:0[02-9]|1[2357-9]|2[0-9]|3[0-9]|4[013-9]|5[0-578]|" . "6[0-9]|7[0-24-9]|8[0-79]|9[0-57-9])|9(?:0[0-57-9]|" . "1[13-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-25-79]|7[0-9]|" . "8[013-9]|9[013-8]))|" . "6(?:0(?:0[0-8]|1[127-9]|2[0-24-689]|3[0-35-9]|4[0-79]|" . "5[0-9]|6[0-9]|7[0-249]|8[03-7]|9[2-9])|1(?:0[017-9]|" . "1[013679]|2[0-579]|3[0-9]|4[0-4]|5[0-359]|6[014]|" . "7[0-9]|8[135-9]|9[0-7])|2(?:0[0-9]|10|20|3[0-35-9]|40|" . "50|60|70|80|90)|3(?:0[0-68]|10|20|30|40|50|60|7[09]|" . "80|90)|4(?:0[0-59]|1[089]|20|30|40|50|60|70|80|90)|" . "5(?:0[0-49]|10|20|30|40|50|60|70|80|90)|6(?:00|10|20|" . "30|40|50|60|80|90)|7(?:00|10|2[013]|30|40|50|60|70|80|" . "90)|8(?:0[0-9]|10|2[13-5]|40|50|60|70|8[0-57]|90)|" . "9(?:0[02]|1[0457]|2[05-79]|3[045]|4[05]|50|60|70|80))|" . "7(?:0(?:0[0-9]|1[0-9]|2[013-8]|39|4[0-3]|5[0-2]|90)|" . "1(?:0[0-9]|1[0-58]|2[02-467]|3[013-589]|4[01458]|" . "5[0147]|6[03-79]|7[01346-8]|8[13-7]|9[0-9])|" . "2(?:0[0-9]|1[0-9]|2[0-59]|3[0-249]|4[0-36-9]|5[0-579]|" . "6[0-46]|7[0-2]|8[0-2]|9[0-9])|3(?:0[0-57-9]|1[0-689]|" . "2[07]|3[0-57]|4[0-46-9]|5[0-3]|60|70|8[0-24589]|90)|" . "4(?:0[0-579]|1[0-79]|2[0-79]|3[0-79]|4[0-8]|5[0-58]|" . "6[02-57-9]|70|8[0-46-9])|5(?:0[0-9]|1[05]|2[0-9]|" . "4[0-9]|5[0-9]|6[0-9]|70|8[0-35]|90)|6(?:0[0-9]|" . "1[0-24-7]|20|30|4[01569]|50|60|70|80|90)|7(?:0[0-689]|" . "1[014-7]|2[0-3]|30|50|60|7[126-9]|80|9[1-689])|" . "8(?:1[013-9]|20|3[0-57-9]|40|50|60|7[0-3569]|80|90)|" . "9(?:10|2[03]|3[0-39]|40|5[01]|61|70|8[1-369]|90))|" . "8(?:0(?:0[0-9]|1[0-57-9]|2[0-246-9]|3[02-5]|4[1-9]|" . "5[1-79]|6[0-24-7]|7[189]|8[1-9]|9[1-69])|" . "1(?:0[0-24-689]|1[0-9]|2[0-24-69]|3[0-59]|4[0-35-9]|" . "5[0-57-9]|6[02-79]|7[0-479]|8[0-689]|9[0-9])|" . "2(?:0[0-9]|1[0249]|2[0-39]|3[0-49]|4[0-49]|50|60|70|" . "8[0-9]|9[0-49])|3(?:0[0-46-9]|1[0-79]|2[0-2]|3[019]|" . "4[0-24-69]|5[0-69]|6[0-48]|7[0-9]|80|9[015])|" . "4(?:0[0-49]|1[0-35-79]|2[0-49]|3[019]|40|5[0178]|60|" . "7[0-29]|80|90)|5(?:0[0-79]|1[0-59]|20|3[0-69]|40|50|" . "60|70|80|9[0-29])|6(?:0[0-69]|1[029]|20|30|40|50|60|" . "70|80|90)|7(?:0[0-359]|1[0-58]|20|30|40|50|60|7[0189]|" . "80|90)|8(?:0[0-69]|10|20|30|40|5[0-249]|60|70|8[1-6]|" . "9[07])|9(?:1[05]|2[0-9]|3[01]|4[0-689]|5[05]|60|70|80|" . "9[05-7]))|" . "9(?:0(?:0[0-9]|1[0-8]|2[1-9]|3[0-9]|4[1-69]|5[0-69]|" . "6[0189]|7[0-79]|8[0-8]|9[1-389])|1(?:0[0-69]|10|20|30|" . "4[0-5]|50|60|70|8[0-2459]|90)|2(?:0[0-689]|10|20|" . "3[0-4]|40|50|60|70|90)|3(?:0[0-9]|10|20|30|40|50|60|" . "70|80|90)|4(?:0[0-49]|10|20|30|40|50|60)|5(?:00|10)|" . "600|700|800|9(?:39|5[03])))" . "|8(?:0(?:0(?:0[0-9]|1[0-79]|2[0-35-9]|3[0-46-9]|4[0-46-9]|" . "5[014-7]|6[0-489]|75|8[0-9]|9[0-79])|1(?:0[0-9]|" . "1[058]|2[02]|3[0-24-6]|4[02-6]|50|60|70|90)|" . "2(?:0[0-689]|10|20|30|40|50|60|70|90)|3(?:0[0-39]|10|" . "20|3[0-69]|40|50|60|70|90)|4(?:00|10|20|30|40|50|60|" . "70|80|90)|5(?:00|10|20|3[1-59]|40|50|60|70|80)|6(?:00|" . "10|20|30|40|50|70|80|90)|7(?:00|10|40|50|70|80)|" . "8(?:00|20|30|50|60|70|80|9[01])|9(?:1[09]|60|70|80))|" . "1(?:0(?:0[0-7]|1[1-9]|2[0-35-8]|3[014-9]|90)|1(?:0[0-9]|" . "1[056]|20|30|40|50|60|70|90)|2(?:0[0-9]|1[05]|20|30|" . "40|50|60|70|90)|3(?:0[0-5]|10|20|30|40|50|60|70|80|" . "90)|4(?:00|30|40|50|70|90)|5(?:0[0-369]|30|40|70|80)|" . "6(?:0[0-59]|30|40|60)|7(?:00|10)|800|990)|" . "2(?:0(?:0[0-689]|1[3-579]|2[47]|3[0237]|4[078]|5[347]|" . "6[057]|7[07]|8[07])|1(?:0[0-49]|10|20|30|40|50|60|70|" . "90)|2(?:0[0-28]|10|20|30|40|50|70|90)|3(?:0[0-3]|30|" . "40|50|60|70|90)|4(?:0[0-3]|10|40)|500|600|7(?:00|10)|" . "800)|" . "3(?:0(?:0[0-8]|1[2-69]|3[068]|4[0-289]|5[0-9]|6[0-59]|" . "7[016-9]|8[0-9]|9[0-57-9])|1(?:0[078]|1[019]|20|" . "3[016]|4[039]|50|6[0-467]|7[0-79]|8[013-57-9]|" . "9[0-269])|2(?:00|10|20|3[016-8]|40|50|60|70)|3(?:00|" . "1[0-7]|20|30|40|50|7[0-29]|80|90)|4(?:0[0-9]|1[128]|" . "20|30|40|60|70|8[0-9]|90)|5(?:0[0-479]|1[0-248]|20|30|" . "50|60|70|80|90)|6(?:0[0-4689]|1[03-68]|30|40|60|70|80|" . "90)|7(?:0[0-57]|20|40|80|90)|8(?:00|20|30|40|60|70|" . "90)|9(?:10|20|5[1-47]|80|9[0-8]))|" . "4(?:0(?:0[04-9]|1[013-689]|2[1-579]|3[1-6]|4[1-9]|" . "5[014689]|7[1278]|8[1-5]|9[0-9])|1(?:0[0-9]|10|2[0-4]|" . "3[0-59]|4[0-479]|50|60|70|90)|2(?:0[0-9]|10|20|3[0-2]|" . "40|50|60|7[0-9]|90)|3(?:0[0-9]|10|20|30|40|50|60|70|" . "80|90)|4(?:0[0-5]|10|20|30|40|50|60|70|80|90)|" . "5(?:0[0-57]|10|30|50|60|70|80)|6(?:0[0-39]|60)|" . "7(?:0[0-6]|40|50|60)|8(?:0[0-58]|10|20|30|40|50|60|" . "7[0-48])|9(?:0[1259]|1[1-9]|5[1-46]|6[13-57-9]|" . "7[1-367]))|" . "5(?:0(?:0[0-9]|1[0235-9]|2[01346]|3[356])|1(?:0[0-9]|" . "1[013489]|20|3[0-39]|40|50|6[0-579]|70|80|90)|" . "2(?:0[0-689]|10|20|30|40|50|60|70|80|9[0-29])|" . "3(?:0[0-79]|10|20|30|4[0-2]|50|60|70|90)|" . "4(?:0[0-4679]|10|20|30|40|50|60|70|80|90)|5(?:0[0-69]|" . "10|20|30|40|50|60|70|80|90)|6(?:0[0-479]|1[02-6]|20|" . "30|40|60|70|80|90)|7(?:0[0237-9]|10|40|50|70)|" . "80[03-69]|9(?:19|2[1-8]|3[0-4]))|" . "6(?:0(?:0[0-9]|1[0-3]|2[0-39]|3[04-68]|4[2-7]|5[0-6]|" . "6[0-35-9]|7[1-46]|8[0-9]|9[0-8])|1(?:0[0-9]|1[07]|20|" . "3[0-57-9]|40|50|60|70|80|90)|2(?:0[0-2469]|10|20|30|" . "40|50|60|70|8[0-29]|90)|3(?:00|10|20|30|40|50|6[0-29]|" . "70|80|90)|4(?:00|10|20|30|40|50|60|70|80|90)|" . "5(?:0[0-289]|10|30|40|50|80)|6(?:00|10)|700|800|" . "9(?:05|10|6[0-49]|8[0-4]))|" . "7(?:0(?:0[0-9]|1[0-35-8]|2[0-356]|3[0-46-9]|4[0-9]|" . "5[0-589]|6[015-9]|7[013-9]|8[0-59]|90)|1(?:00|10|20|" . "30|40|50|60|70|90)|2(?:0[0-356]|10|2[0-3]|30|40|50|60|" . "70|80|90)|3(?:00|10|20|30|40|50|60|70|80)|4(?:00|10|" . "20|30|40|60|70|80)|5(?:00|10|20|70|90)|6(?:00|20|40)|" . "7(?:00|20)|8(?:00|90)|9(?:00|19|20|30|50))|" . "8(?:0(?:0[0-9]|1[0-8]|2[015-79]|33|5[01]|60|8[4-689]|99)|" . "1(?:0[0-9]|10|2[0-3579]|3[0-39]|4[0-39]|5[0-6]|" . "6[0-259]|70|87|9[0-589])|2(?:0[0-79]|1[0-4]|20|30|40|" . "50|60|70|90)|3(?:0[0-7]|10|20|30|40|50|60|70|80|90)|" . "4(?:0[0-35-9]|10|20|30|40|50|60|70|80|90)|" . "5(?:0[0-479]|10|20|30|40|50|60|80)|6(?:00|30|40|50)|" . "700|80[0-59])|" . "9(?:0(?:0[0-79]|1[0-2569]|2[0-9]|30|89|9[0-59])|" . "1(?:0[0-9]|1[036]|20|30|4[04]|50|60|70|90)|" . "2(?:0[0-79]|10|20|30|40|50|60|70|90)|3(?:0[0-79]|10|" . "20|3[01]|40|50|60|80|90)|4(?:00|10|20|30|40|50|60|70|" . "80)|5(?:00|1[05]|2[05]|30|50|60|70|80)|6(?:00|30|60|" . "90)|7(?:00|10|40|7[0-2])|800))" . "|9(?:0(?:0(?:0[0-9]|1[0-689]|2[0-35]|40)|1(?:0[01]|10|20|30|40|" . "50|60|70)|200|3(?:00|30|40|50|60|70|80)|400|500|600|" . "700|8(?:00|50))|" . "1(?:0(?:0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|" . "7[0-247-9]|80|9[07])|1(?:0[0-9]|2[0-9]|3[0-35-7]|" . "4[0-269]|5[0-46-9]|6[0-9]|7[0-47-9]|80|9[0-9])|" . "2(?:0[014579]|1[0134]|2[0-9]|30|4[01]|50|6[0-35-9]|70|" . "80|9[0-24-9])|3(?:0[0-9]|1[0-245]|2[0-589]|3[0-59]|" . "4[0-9]|5[013-59]|60|7[014]|8[0-9]|90)|4(?:0[0-79]|" . "1[024-8]|2[0-9]|30|40|50|6[0-3]|70|80|90)|5(?:10|20|" . "30|4[0-29]|5[01]|60|7[0-489]|80|90)|6(?:0[0-359]|" . "1[0239]|2[05]|30|40|50|60|70|80|9[0-9])|7(?:0[0-9]|" . "1[0-3]|20|30|4[0-9]|50|6[0-47]|70|8[013]|9[0-2])|" . "8(?:0[0-79]|1[0-5]|2[01]|30|4[019]|5[0-25]|6[01]|" . "7[0-9]|8[0-79]|9[0-689])|9(?:1[0-79]|2[1-4]|30|4[0-9]|" . "5[1-9]|6[1-9]|7[1-9]|8[1-68]))|" . "2(?:0(?:0[0-9]|1[0-9]|2[0-9]|3[3-9]|4[0-9]|5[0-9]|" . "6[013-9]|7[0-9]|8[1-9]|9[235-9])|1(?:0[0-689]|1[0-9]|" . "2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-9]|7[0-9]|8[1-689]|" . "9[013-69])|2(?:0[0-689]|1[0-69]|2[0-9]|3[0-57-9]|" . "4[0-79]|5[0-46-9]|6[0-369]|7[0-59]|8[0-246-8]|" . "9[0-35-8])|3(?:0[0-9]|1[0-46-9]|2[0-9]|3[0-379]|" . "4[0-2]|5[0-79]|6[0-69]|7[029]|8[08]|9[0-9])|" . "4(?:0[0-9]|1[0-9]|2[03]|3[08]|4[1-578]|54|99)|" . "5(?:0[0-9]|1[1346-9]|2[1-57-9]|3[1-8]|4[1-6]|5[235]|" . "6[1-79]|7[13-8]|8[1-8]|9[1-9])|6(?:0[0-79]|1[13-6]|" . "2[24]|3[1-8]|4[1-359]|5[013-689]|6[05]|7[12579]|" . "8[2-689]|9[1358])|7(?:0[0-9]|1[1-5]|2[125-9]|3[05-9]|" . "4[1-578]|5[12568]|6[1-46-8]|7[2-469]|8[1-9]|9[1-9])|" . "8(?:0[0-9]|1[135-9]|2[0-4]|4[2-8]|5[1-69]|6[1-7]|" . "8[1-79]|9[1-8])|9(?:0[1-46-9]|1[1-9]|2[0-9]|3[0-9]|59|" . "7[0-57-9]|8[013-9]|99))|" . "3(?:0(?:0[0-35-9]|1[1-46-8]|2[124])|1(?:0[0-8]|1[0-24-8]|" . "2[0-367]|3[013-6]|4[0-9]|5[0-8]|6[0-9]|7[0-24-7]|" . "8[1-46-9]|9[0-79])|2(?:0[0-9]|1[0-46-9]|2[0-2]|" . "3[0135]|4[015]|50|6[01]|7[0145]|8[2-6]|9[047])|" . "3(?:0[0-8]|1[015]|2[0-5]|3[0-24-7]|4[0-689]|5[0-2]|" . "6[0-6]|70|8[0-2]|90)|4(?:0[0-8]|1[0-2]|2[0-4]|3[0167]|" . "4[01]|5[013-8]|6[0-5]|7[0239]|8[1-79]|93)|5(?:0[0-8]|" . "1[1-7]|2[1-46-8]|3[1-9]|4[1457]|5[4-68]|6[1-4]|" . "7[14-8]|8[1-9]|9[13])|6(?:0[0-689]|1[1-9]|2[1-37]|31|" . "9[1-9])|7(?:0[015]|1[129]|3[1346-8]|61)|8(?:0[0-267]|" . "1[2-6]|8[13-57]|9[19])|90[17-9])|" . "4(?:0(?:0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[1-5]|94)|" . "1(?:0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-69]|" . "7[0-5]|9[0-79])|2(?:0[0-9]|1[0149]|2[0-9]|3[0-9]|" . "4[0-4679]|5[0-9]|6[0-9]|7[0-9]|81|90)|3(?:0[0-9]|" . "1[0-29]|2[0-247]|4[0-59]|5[013-79]|6[0-689]|7[0-9]|" . "8[0-9]|9[0-689])|4(?:0[0-9]|1[0-579]|20|3[0-9]|40|" . "5[0-79]|60|7[0-9]|80|90)|5(?:0[0-9]|1[0-9]|2[0-8]|" . "3[1-9]|4[1-46-9]|5[0-3]|6[1-9]|7[1-9]|8[1-9]|9[1-9])|" . "6(?:0[0-4679]|1[1-46-9]|2[1-36-8]|3[1-9]|4[1-578]|" . "5[1346-9]|6[13479]|7[1-9]|8[1-8])|7(?:0[0-4679]|" . "1[0-59]|2[1-9]|3[1-9]|4[1-589]|6[1-8]|8[1-59])|" . "8(?:0[0-9]|1[1-9]|3[1-39]|5[1-9]|6[1-79]|80|9[1-4])|" . "9(?:4[125-9]|5[1-689]|6[1-68]|7[1-8]))|" . "5(?:0(?:0[0-8]|1[0-9]|2[0-57-9]|3[0-8]|4[0-26]|5[0-69]|" . "6[0-79]|7[0-9]|9[0-8])|1(?:0[0-9]|1[0-27-9]|2[0-79]|" . "3[0-579]|4[0-6]|5[0-57-9]|6[0-259]|70|80|9[0-9])|" . "2(?:0[0-79]|1[0-9]|2[0-4689]|3[0-49]|40|5[0-29]|60|70|" . "80|90)|3(?:0[0-469]|1[0-689]|2[0-489]|3[0-5]|40|" . "5[015]|60|7[09]|80|90)|4(?:00|1[0-29]|20|30|4[015]|50|" . "6[01]|7[0-9]|80|90)|5(?:0[0-9]|10|2[0-9]|30|40|5[019]|" . "60|7[013]|80|90)|6(?:0[0-59]|1[0-9]|20|30|40|5[0-29]|" . "60|70|80|9[0-367])|7(?:0[0-9]|1[0-3569]|2[0-7]|3[1-4]|" . "4[0-27]|50|6[019]|70|80)|8(?:0[0-9]|1[0-6]|20|30|" . "4[02-4]|50|6[1-68]|7[0-79]|80|9[127])|9(?:0[12578]|" . "1[1-3569]|2[0-8]|3[0-4]|4[0-9]|5[0-46-9]|7[0-8]))|" . "8799)" . ")", # # 5 Digit postal code, with leading 0s. # # Data from: http://download.geonames.org/export/zip/DE.zip # Germany => "(?k:0(?:1(?:0(?:6[79]|9[79])|1(?:0[89]|2[79]|39|5[679]|69|8[79])|" . "2(?:1[79]|3[79]|5[79]|7[79])|3(?:0[79]|14|2[468])|" . "4(?:45|5[48]|6[258]|7[178])|5(?:58|61|8[79]|9[14])|" . "6(?:09|1[269]|23|40|6[25]|8[39])|7(?:05|2[38]|3[1478]|" . "44|6[28]|7[3468]|96)|8(?:09|1[469]|2[459]|33|4[478]|" . "55|77|96)|9(?:0[0469]|17|20|36|45|68|79|8[37]|" . "9[03468]))|" . "2(?:6(?:2[57]|33|4[03]|8[19]|9[249])|7(?:08|27|3[0369]|" . "4[278]|63|79|8[258]|9[14679])|8(?:2[6-9]|9[49])|" . "9(?:06|2[39]|43|5[3679]|7[79]|9[1479]))|" . "3(?:0(?:4[2468]|5[0-58]|9[69])|1(?:03|1[69]|3[09]|49|59|" . "72|85|97)|2(?:0[25]|2[269]|38|4[69]|53))|" . "4(?:1(?:0[3579]|29|5[57-9]|7[7-9])|2(?:0[579]|29|49|" . "7[579]|8[89]|99)|3(?:1[5-9]|2[89]|4[79]|5[67])|4(?:16|" . "2[05]|35|42|51|6[03])|5(?:09|19|23|39|52|6[457]|" . "7[1459])|6(?:0[03]|1[0378]|26|39|43|5[1457]|68|" . "8[03578])|7(?:03|20|36|4[169]|58|69|7[49])|8(?:08|" . "2[1478]|38|49|6[02]|74|8[069]|95)|9(?:1[06]|2[48]|" . "3[12468]))|" . "6(?:1(?:08|1[02468]|2[02468]|3[02]|79|8[48]|9[38])|2(?:17|" . "3[17]|4[269]|5[4589]|68|79|95)|3(?:08|1[1378]|33|" . "4[378]|6[69]|8[568])|4(?:0[68]|2[059]|49|5[68]|" . "6[34679]|84|93)|5(?:0[27]|2[68]|3[67]|4[2378]|56|67|" . "7[178])|6(?:18|28|3[268]|4[278]|67|79|8[268])|7(?:12|" . "2[124579]|31|49|66|7[349]|8[056]|9[1246])|" . "8(?:0[03489]|4[24679]|6[129]|8[689]|9[56])|9(?:0[159]|" . "1[78]|2[2568]))|" . "7(?:3(?:18|3[03468]|4[39]|56|6[68]|8[179])|4(?:07|" . "2[2679])|5(?:4[5689]|5[1247]|70|8[069])|6(?:07|1[369]|" . "29|39|46)|7(?:4[3579]|51|68|7[48])|8(?:06|19)|9(?:07|" . "19|2[24679]|37|5[02578]|73|8[0579]))|" . "8(?:0(?:5[68]|6[0246])|1(?:07|1[258]|3[24]|4[147])|2(?:09|" . "2[38]|3[3679]|48|58|6[12579]|8[09]|9[47])|3(?:0[149]|" . "1[258]|2[14-68]|4[049]|5[259]|7[13]|9[36])|4(?:12|" . "2[78]|3[29]|5[19]|68|85|9[169])|5(?:2[3579]|3[89]|" . "4[1378])|6(?:06|26|4[58]))|" . "9(?:0(?:28|30)|1(?:1[1-4679]|2[0235-8]|3[01])|2(?:1[27]|" . "2[1478]|3[256]|4[1349])|3(?:06|2[268]|37|5[0356]|66|" . "76|8[057]|9[02459])|4(?:05|19|2[379]|3[02579]|56|" . "6[58]|7[147]|8[1478]|96)|5(?:09|1[478]|26|4[48]|57|69|" . "7[3579]|99)|6(?:0[03]|1[89]|2[379]|3[348]|48|6[19])))" . "|1(?:0(?:1(?:1[579]|7[89])|24[3579]|3(?:1[57-9]|6[579])|" . "4(?:0[579]|3[579])|5(?:5[13579]|8[579])|62[3579]|" . "7(?:0[79]|1[13579]|7[79]|8[13579])|82[3579]|" . "9(?:6[13579]|9[79]))|" . "1011|2(?:0(?:4[3579]|5[13579]|99)|1(?:0[13579]|5[79]|" . "6[13579])|2(?:0[3579]|4[79]|7[79])|3(?:0[579]|4[79]|" . "5[13579])|4(?:3[579]|59|8[79])|5(?:2[4679]|5[579]|" . "8[79])|6(?:19|2[1379]|79|8[13579]))|" . "3(?:0(?:47|5[13579]|8[689])|1(?:2[579]|5[689]|8[79])|" . "3(?:4[79]|5[13579])|4(?:0[3579]|3[579]|6[579])|" . "5(?:0[3579]|8[13579]|9[13579])|62[79])|" . "4(?:0(?:5[023579]|89)|1(?:09|29|31|6[3579]|9[3579])|" . "4(?:6[179]|7[1368]|8[02])|5(?:13|32|4[278]|5[02478])|" . "6(?:12|2[147]|41|56|6[29])|7(?:1[25]|2[78]|7[02468]|" . "89|9[378])|8(?:06|2[2378])|9(?:13|29|4[37]|59|7[49]))|" . "5(?:2(?:3[0246]|9[59])|3(?:06|2[0468]|4[45]|66|7[02478])|" . "5(?:1[78]|2[68]|37|6[269])|7(?:11|3[28]|4[15689]|" . "5[124578])|8(?:06|27|3[1478]|48|59|6[48]|9[08])|" . "9(?:07|1[03]|26|3[68]))|" . "6(?:2(?:2[57]|30|4[478]|59|69|78)|3(?:0[367]|21|4[18]|" . "5[269])|5(?:15|4[078]|5[269]|6[257])|7(?:27|6[167]|75|" . "9[28])|8(?:1[68]|27|3[1357]|45|6[68])|9(?:09|18|2[18]|" . "4[59]))|" . "7(?:0(?:3[3469]|8[79]|9[1489])|1(?:09|11|2[169]|39|5[349]|" . "6[68]|79|9[24])|2(?:0[79]|1[3479]|3[57]|48|5[2589]|68|" . "79|91)|3(?:09|2[12689]|3[57]|4[89]|58|67|7[359]|89|" . "9[0-28])|4(?:06|19|2[49]|38|4[09]|5[49]|89|9[1358])|" . "50[69])|" . "8(?:0(?:5[579]|69)|1(?:0[679]|19|4[67]|8[124]|9[0568])|" . "2(?:09|11|25|3[01369]|4[69]|58|7[369]|9[29])|" . "3(?:1[147]|20|3[47]|47|56|7[45])|4(?:3[579]|4[25]|" . "6[159])|5(?:07|1[0369]|28|46|5[16]|6[59]|7[34]|8[16])|" . "609)|" . "9(?:0(?:5[3579]|6[13579]|7[13579]|8[69])|2(?:0[59]|17|30|" . "4[369]|58|60|73|88|94)|3(?:0[0369]|22|3[69]|48|57|" . "7[0246]|86|9[59])|4(?:06|1[27])))" . "|2(?:0(?:0(?:38|88|9[579])|14[4689]|2(?:49|5[13579])|35[04579]|" . "45[79]|53[579])|" . "1(?:0(?:29|3[13579]|7[3579])|1(?:0[79]|29|4[79])|" . "2(?:1[78]|2[0478]|44|5[5689]|6[16]|7[1249])|" . "3(?:3[579]|5[478]|6[0589]|7[169]|8[02568]|9[14578])|" . "4(?:0[013679]|23|3[5689]|4[124579]|65|8[13]|93)|" . "5(?:0[29]|1[46]|2[124679])|6(?:14|29|35|4[0134679]|" . "8[02-4]|98)|7(?:0[269]|1[0247]|2[03679]|3[02479]|45|" . "5[56]|6[2359]|7[0256]|8[124579]))|" . "2(?:0(?:4[13579]|8[13579])|1(?:1[13579]|4[3579]|59|" . "7[579])|29[79]|3(?:0[13579]|3[579]|59|9[13579])|" . "4(?:1[579]|5[3579])|5(?:2[3579]|4[79]|59|8[79])|" . "60[579]|76[13579]|8(?:4[468]|5[01]|69|8[059])|" . "9(?:2[679]|4[169]|5[25689]|6[24579]))|" . "3(?:5(?:39|5[2468]|6[024689]|70)|6(?:1[179]|2[36-9]|69|" . "8[349])|7(?:01|1[4579]|3[08]|4[34679]|58|69|7[4579]|" . "95)|8(?:1[23568]|2[0134679]|4[357]|58|6[03679]|79|" . "8[13]|9[689])|9(?:09|1[19]|23|36|4[2468]|52|6[68]|" . "7[024]|9[269]))|" . "4(?:1(?:0[35-79]|1[134689]|4[35-9]|59|61)|2(?:1[147]|" . "2[02369]|3[2589]|4[124578]|5[0134679])|3(?:06|2[1679]|" . "40|5[1478]|6[0134679]|76|9[2589])|40[124579]|" . "5(?:3[4679]|58|68|76|8[29]|9[48])|6(?:01|1[0369]|" . "2[0235689]|3[124578]|4[0134679])|7(?:68|8[2-47]|" . "9[0134679])|8(?:0[0235689]|1[134679]|37|48|5[0257]|" . "6[0134679]|7[0235689]|8[124578]|9[0134679])|9(?:3[79]|" . "4[134]|55|6[0369]|7[25-7]|8[03689]|9[124679]))|" . "5(?:3(?:3[5-7]|48|5[58]|6[1458]|7[013679])|4(?:04|2[19]|" . "3[67]|51|6[29]|7[49]|8[25689]|9[124579])|5(?:24|4[18]|" . "5[147]|6[0369]|7[235689]|8[124578]|9[0134679])|693|" . "7(?:0[49]|1[2589]|2[14579]|46|6[147]|7[0469]|8[2568]|" . "9[124579])|8(?:13|2[16]|3[26]|4[0259]|5[0235689]|" . "6[02-4689]|7[0235689]|8[124579]|99)|9(?:17|2[03467]|" . "38|46|80|9[2679]))|" . "6(?:1(?:2[1-3579]|3[135]|6[09]|8[08]|97)|2(?:0[39]|1[59])|" . "3(?:16|4[059]|8[24689])|4(?:09|19|27|34|4[16]|52|65|" . "74|8[679])|5(?:06|2[49]|32|48|5[36]|7[19])|6(?:0[357]|" . "2[49]|3[29]|55|7[06]|8[39])|7(?:2[135]|36|5[79]|89)|" . "8(?:02|1[07]|26|3[15]|4[24579]|71|9[279])|" . "9(?:0[134679]|19|3[15-79]|54|69))|" . "7(?:2(?:11|3[29]|4[35689]|5[12479]|83|99)|3(?:0[58]|1[38]|" . "2[147]|3[03679]|56|67|74|8[369])|4(?:04|1[29]|32|" . "4[269]|7[2468]|9[89])|5(?:68|7[02468]|80)|6(?:07|" . "1[269]|2[48]|3[278])|7(?:11|2[169]|49|5[135]|77|" . "9[38])|80[149])|" . "8(?:19[579]|2(?:0[13579]|1[13579]|3[79]|59|7[79])|" . "3(?:0[79]|2[579]|35|5[579])|7(?:1[79]|5[579]|7[79]|" . "90)|8(?:16|32|44|57|65|7[069]))|" . "9(?:22[13579]|3(?:0[38]|13|2[038]|3[169]|4[258]|" . "5[1-35689]|6[124579]|7[89]|8[69]|9[2-469])|4(?:1[036]|" . "39|5[169]|6[258]|7[1-35689]|8[124578]|9[0134679])|" . "5(?:25|49|5[369]|6[258]|7[14-689]|8[124578]|" . "9[0134679])|6(?:14|33|4[0369]|64|83|9[039])))" . "|3(?:0(?:1(?:59|6[13579]|7[13579])|4(?:19|49|5[13579])|5(?:19|" . "21|39|59)|6(?:2[579]|5[579]|69)|8(?:2[367]|5[135]|80|" . "90)|9(?:00|16|26|38|52|66|74|8[29]))|" . "1(?:0(?:08|2[089]|3[23569]|61|7[39]|8[457-9]|9[134679])|" . "1(?:3[4579]|41|57|6[27]|7[147]|8[058]|9[1569])|" . "2(?:2[468]|34|4[169]|75)|3(?:03|1[19])|5(?:15|35|" . "4[27]|5[235689]|82|9[25])|6(?:0[034689]|1[389]|" . "2[1-36-9]|3[2-46-8]|55|75|8[38]|9[1389])|7(?:0[0278]|" . "1[0-2457-9]|37|49|8[579])|8(?:12|32|4[08]|55|6[0378]))|" . "2(?:0(?:49|5[12])|1(?:0[578]|20|3[09])|2(?:57|78|89)|" . "3(?:12|39|51|6[19])|4(?:2[3579]|57|69|79)|5(?:4[579]|" . "84)|6(?:0[29]|57|76|8[39]|9[49])|7(?:5[68]|60|91)|" . "8(?:05|16|25|3[29]))|" . "3(?:0(?:14|3[49]|98)|1(?:0[0246]|29|42|54|6[15]|7[58]|" . "8[149])|3(?:11|3[0245]|78|97)|4(?:15|28|4[29])|519|" . "6(?:0[24579]|1[13579]|4[79]|59|89|99)|7(?:19|29|39|58|" . "75|90)|8(?:03|1[38]|2[49]))|" . "4(?:1(?:1[79]|2[13578]|3[0-24])|2(?:12|25|33|46|53|6[06]|" . "7[07]|8[169]|9[258])|3(?:0[258]|1[147]|2[03679]|46|" . "5[59]|69|7[69]|8[58]|9[369])|4(?:14|3[149]|54|66|" . "7[1479]|97)|5(?:08|1[369]|37|49|60|76|8[27]|9[0369])|" . "6(?:13|2[168]|3[02379]))|" . "5(?:0(?:3[79]|4[13]|66|75|8[0358]|9[1469])|1(?:0[248]|" . "1[024679])|2(?:16|3[269]|60|7[49]|8[2578])|3(?:05|15|" . "2[1579]|9[02468])|4(?:1[058]|2[38]|35|4[047]|5[27]|" . "6[0369])|5(?:1[069]|7[689]|8[0-6])|6(?:06|1[49]|25|" . "3[038]|4[1479]|8[3-9]|90)|7(?:08|1[369]|45|5[369]|" . "6[478]|8[19]|9[2469]))|" . "6(?:0(?:3[79]|4[13]|88|93)|1(?:0[03]|1[059]|2[49]|3[27]|" . "4[258]|5[147]|6[03679]|79|99)|2(?:0[58]|1[1479]|51|" . "6[69]|7[257]|8[024679])|3(?:04|18|2[03569]|41|5[58]|" . "6[479]|81|9[169])|4(?:04|1[49]|33|48|5[267]|6[069]))|" . "7(?:0(?:7[3579]|8[135])|1(?:15|2[047]|3[0369]|54|7[06]|" . "8[16]|9[1479])|2(?:1[3-8]|35|4[279]|69|76|8[147]|" . "9[03679])|3(?:08|18|27|39|45|5[159])|4(?:12|3[14]|" . "4[14579])|5(?:20|3[49]|47|74|8[169])|6(?:03|19|2[07]|" . "3[2359]|4[02379]|71|88|9[1679]))|" . "8(?:023|1(?:0[02468]|1[02468]|2[0246]|5[49]|6[25]|" . "7[0369])|2(?:2[689]|39|59|68|7[124579]|81)|3(?:0[024]|" . "1[259]|2[124579]|50|6[48]|7[235689]|8[124578])|" . "4(?:4[02468]|5[89]|6[124578]|7[0134679]|8[69])|5(?:18|" . "2[478]|3[01369]|4[237]|5[0134679])|6(?:4[024]|67|78|" . "85|90)|7(?:0[0479]|2[39])|8(?:2[0289]|3[568]|55|" . "7[1579]|89|9[59]))|" . "9(?:014|1(?:0[468]|1[02468]|2[02468]|30|6[47]|7[159])|" . "2(?:18|21|4[059]|6[14]|79|88|91)|3(?:07|1[79]|26|" . "4[035]|5[69]|65|87|9[378])|4(?:18|3[459]|4[3468])|" . "5(?:17|24|39|7[69]|9[069])|6(?:06|1[59]|2[49]|38|" . "4[69])))" . "|4(?:0(?:2(?:1[0-3579]|2[13579]|3[13579])|4(?:68|7[024679]|89)|" . "5(?:4[579]|89|9[13579])|6(?:2[579]|6[78]|70|99)|" . "7(?:2[134]|64|89)|8(?:22|32|78|8[0235]))|" . "1(?:06[135689]|1(?:69|79|89|99)|23[689]|3(?:34|52|6[36]|" . "7[29])|4(?:6[024689]|7[02])|5(?:1[5-7]|39|4[0-2]|" . "6[49])|7(?:4[7-9]|51)|8(?:12|36|4[49]))|" . "2(?:1(?:0[3579]|1[13579])|2(?:7[579]|8[13579])|3(?:2[79]|" . "49|69|89|99)|4(?:77|89|99)|5(?:49|5[135]|79)|" . "6(?:5[13579]|9[79])|7(?:19|81|99)|8(?:5[3579]|9[79])|" . "929)|" . "4(?:1(?:3[579]|4[13579])|2(?:2[579]|6[3579]|8[79])|3(?:09|" . "19|2[89]|39|5[79]|69|79|88)|5(?:3[246]|7[579]|81)|" . "6(?:2[357-9]|49|5[1-3])|7(?:8[79]|9[13579])|" . "8(?:0[13579]|6[679]|79|9[24]))|" . "5(?:1(?:2[78]|3[0134689]|4[13-579])|2(?:19|39|5[79]|" . "7[679]|89)|3(?:0[79]|2[679]|5[5-79])|4(?:03|68|" . "7[0235689]|81)|5(?:2[579]|49)|6(?:5[79]|6[135]|99)|" . "7(?:01|11|21|3[19]|68|7[02])|8(?:79|8[134689]|" . "9[124679])|96[468])|" . "6(?:04[579]|1(?:1[79]|4[579])|2(?:3[68]|4[024]|8[246])|" . "3(?:25|4[28]|5[49]|9[579])|4(?:1[49]|46|59|8[357]|99)|" . "5(?:09|1[49]|3[579]|6[29]))|" . "7(?:05[1357-9]|1(?:19|3[7-9]|6[679]|7[89]|9[89])|" . "2(?:2[689]|39|49|59|69|79)|4(?:4[1357]|75|95)|" . "5(?:0[69]|33|46|5[19]|74|89)|6(?:08|2[3-7]|38|47|52|" . "6[159])|79[89]|8(?:0[02-579]|29|39|77)|9(?:06|18|29))|" . "8(?:079|1(?:4[3579]|5[13579]|6[1357])|2(?:31|49|68|82|91)|" . "3(?:0[18]|17|2[49]|36|4[16]|5[16]|6[169])|4(?:29|" . "3[12]|55|65|77|8[058]|9[369])|5(?:2[79]|31|65|99)|" . "6(?:07|1[29]|2[49]|53|83|91)|7(?:03|12|2[07]|3[49]))|" . "9(?:0(?:7[468]|8[02468]|90)|1(?:24|34|43|52|63|7[069]|86|" . "9[16])|2(?:0[15]|1[49])|3(?:2[468]|56|77|93)|" . "4(?:0[16]|1[39]|2[49]|3[49]|48|5[13679]|7[79]|9[27])|" . "5(?:0[49]|25|36|4[59]|65|77|8[46]|9[34679])|6(?:10|" . "2[46]|3[2578]|61|8[158]|9[269])|7(?:16|33|4[04]|5[17]|" . "6[27]|7[0479])|8(?:0[89]|11|2[48]|3[258]|4[34679])))" . "|5(?:0(?:1(?:2[679]|69|7[01]|8[19])|2(?:26|59)|3(?:21|54|74|" . "89)|6(?:6[78]|7[0246-9])|7(?:3[3579]|6[579])|" . "8(?:2[3579]|5[89])|9(?:3[13579]|6[89]|9[679]))|" . "1(?:06[13579]|1(?:0[3579]|4[3579])|3(?:7[13579]|81|99)|" . "4(?:2[79]|6[579]|91)|5(?:03|1[59]|45|70|8[08]|9[78])|" . "6(?:4[357]|74|88)|7(?:0[29]|66|89))|" . "2(?:0(?:6[2468]|7[02468]|80)|1(?:34|46|5[269])|2(?:2[2-4]|" . "49)|3(?:49|5[135]|7[29]|8[258]|9[1369])|4(?:28|4[15]|" . "5[79]|77|99)|5(?:11|25|3[18]))|" . "3(?:1(?:1[13579]|2[13579]|7[3579])|22[579]|3(?:32|4[037]|" . "59)|4(?:2[46]|74|89|98)|5(?:0[15-8]|18|20|3[349]|" . "4[57]|57|6[027]|7[27-9])|6(?:04|19|39)|7(?:21|57|73|" . "83|97)|8(?:0[49]|19|4[024]|59|79|81|94)|9(?:0[29]|" . "1[39]|25|37|4[0579]))|" . "4(?:29[02-68]|3(?:0[689]|1[01346-8]|2[09]|3[128]|" . "4[0134679])|4(?:1[13]|2[124679]|39|41|5[0135-79]|" . "7[02]|8[3467]|9[278])|5(?:1[68]|2[34689]|3[134689]|" . "5[028]|68|7[04689]|8[4-79]|9[57])|6(?:08|1[0-24679]|" . "3[46]|4[679]|5[57]|6[24689]|7[35]|8[79]))|" . "5(?:1(?:1[68]|2[0246-9]|3[01])|2(?:18|3[2479]|46|5[27]|" . "6[238]|7[0168]|8[368]|9[1469])|4(?:1[13]|2[245]|" . "3[0257]|4[24]|5[0279]|69|71|8[137]|9[014679])|" . "5(?:4[356]|59|6[689]|7[168]|8[35]|9[0235-79])|" . "6(?:0[68]|1[89]|2[14679])|7(?:43|5[68]|6[578]|" . "7[4679]))|" . "6(?:0(?:68|7[0235-7])|1(?:12|3[023]|54|7[09]|82|91)|" . "2(?:0[346]|18|20|3[57]|4[249]|5[34]|69|7[16]|8[138]|" . "9[01459])|3(?:0[57]|1[67]|2[1-39]|3[023578]|4[01689]|" . "5[57]|68|7[079])|4(?:1[024]|2[2478]|5[79]|62|7[0279])|" . "5(?:6[467]|7[59]|8[147-9]|9[3489])|6(?:26|3[07]|" . "4[258]|5[1369])|7(?:2[79]|36|4[356]|5[1349]|6[1679])|" . "8(?:1[248]|2[0135689]|4[13]|5[0689]|6[124579]))|" . "7(?:0(?:7[2468]|80)|2(?:23|34|5[08]|71|9[09])|3(?:19|" . "3[49]|68|9[29])|4(?:13|39|62|8[29])|5(?:18|20|3[79]|" . "48|55|6[27]|7[278]|8[0134679])|6(?:1[024]|2[79]|" . "3[25689]|4[124578]))|" . "8(?:0(?:89|9[13579])|1(?:19|35)|2(?:39|56|85)|3(?:00|13|" . "3[29])|45[2-6]|5(?:0[79]|1[135]|40|53|66|79)|" . "6(?:3[68]|4[024]|75)|7(?:0[68]|10|3[09]|6[29]|91)|" . "8(?:0[29]|4[09]))|" . "9(?:0(?:6[3579]|7[1357])|1(?:74|9[29])|2(?:2[79]|69)|" . "3(?:02|2[09]|48|68|79|87|9[49])|4(?:2[357]|39|57|69|" . "94)|5(?:05|1[049]|5[5-8]|81|9[07])|60[29]|75[579]|" . "8(?:2[13]|46|72|89)|9(?:09|29|39|55|6[49])))" . "|6(?:0(?:3(?:08|1[13468]|2[0235-79]|8[5689])|4(?:3[1357-9]|" . "8[6-9])|5(?:2[89]|49|9[4689]))|" . "1(?:1(?:18|3[078]|69|84|9[147])|2(?:0[0369]|3[19]|50|67|" . "7[369])|3(?:48|5[02]|8[19])|4(?:4[09]|62|7[69]))|" . "3(?:0(?:6[579]|7[135])|1(?:10|28|50|65|79)|2(?:25|63)|" . "3(?:03|2[29])|4(?:05|5[02467]|77|86)|5(?:0[05]|1[27]|" . "26|3[38]|4[369]|7[19]|8[49]|9[49])|6(?:07|19|28|" . "3[3679]|54|67|7[49]|8[38]|9[14579])|7(?:39|4[13]|55|" . "6[28]|7[36]|85|9[16])|8(?:0[18]|1[14]|2[05689]|3[149]|" . "4[0369]|5[367]|6[0347-9]|7[124579]|97)|9(?:06|1[16]|" . "2[04578]|3[0134679]))|" . "4(?:2(?:8[3579]|9[1357])|3(?:19|31|4[27]|54|67|72|8[05]|" . "9[057])|40[14579]|5(?:21|46|6[09]|7[29]|8[49])|6(?:25|" . "46|5[38]|6[58]|7[38]|8[369])|7(?:11|20|3[29]|4[37]|" . "5[034679])|8(?:07|23|3[29]|46|5[039]))|" . "5(?:1(?:8[3579]|9[13579])|2(?:0[1357]|19|2[0-4]|3[29])|" . "3(?:07|2[169]|4[3-7]|66|75|8[58]|9[169])|4(?:28|39|51|" . "6[28]|7[49])|5(?:10|2[079]|49|5[0-68]|8[29]|9[479])|" . "6(?:0[46]|1[148]|2[034679])|7(?:19|60|79|95)|" . "8(?:1[27]|24|3[05]|43)|9(?:29|3[1346]))|" . "6(?:1(?:1[13579]|2[135-9]|3[0-3])|2(?:65|71|8[07]|9[29])|" . "3(?:33|46|5[29]|86|99)|4(?:24|40|5[039]|8[24]|97)|" . "5(?:0[0134679]|3[89]|40|57|64|7[18]|8[39])|6(?:06|" . "2[059]|36|4[069]|63|79|87|93)|7(?:0[169]|40|63|73|" . "8[07]|9[38])|8(?:0[269]|22|39|49|51|6[29]|7[179]|" . "8[257]|9[24])|9(?:0[13479]|1[4679]|5[3-57]|69|7[68]|" . "8[179]|9[469]))|" . "7(?:0(?:59|6[13579]|71|98)|1(?:05|1[27]|2[25-7]|3[346]|" . "4[1679]|5[027-9]|6[15-79])|2(?:2[79]|4[056]|5[1689]|" . "69|7[138]|8[013]|9[2457])|3(?:0[4578]|1[01679]|46|54|" . "6[013568]|7[346-8])|4(?:3[3-5]|5[49]|6[68]|7[1-35]|" . "8[02379])|5(?:4[79]|5[01]|7[4578]|8[0235-7]|" . "9[0-35689])|6(?:5[3579]|6[13]|7[78]|8[01568]|9[1379])|" . "7(?:0[015-7]|1[4-68]|2[2457-9]|3[12457]|4[24-689]|" . "5[2-4679])|8(?:0[68]|1[134679]|2[1-4679]))|" . "8(?:1(?:59|6[13579]|99)|2(?:19|29|39|59)|30[579]|5(?:19|" . "26|35|4[29])|6(?:23|4[279])|7(?:23|53|66|75|8[29]|" . "9[49])|80[49])|" . "9(?:1(?:1[578]|2[01346]|51|68|81|9[08])|2(?:07|14|2[16]|" . "3[149]|4[25]|5[0134679])|4(?:12|2[79]|3[4679]|69|" . "8[38]|93)|5(?:0[29]|1[478])))" . "|7(?:0(?:1(?:7[3468]|8[02468]|9[0-3579])|3(?:2[79]|7[2468])|" . "4(?:3[579]|69|99)|5(?:6[3579]|9[79])|6(?:19|29)|" . "7(?:3[46]|71|94)|8(?:06|25|39))|" . "1(?:0(?:3[24]|6[3579]|8[38]|93)|1(?:0[16]|1[16]|2[06]|" . "3[149]|4[49]|5[4579])|2(?:29|54|63|7[27]|8[27]|" . "9[2679])|3(?:3[246]|64|84|9[47])|40[49]|5(?:22|" . "4[0369]|54|6[036]|7[03679])|6(?:3[468]|4[02]|65|7[29]|" . "86|9[16])|7(?:0[16]|1[178]|2[0369]|3[2579]))|" . "2(?:07[0246]|1(?:08|1[69]|2[47]|3[158]|4[14579]|60|7[258]|" . "8[1469])|2(?:02|1[38]|2[14679]|50|7[05]|8[05]|" . "9[0134679])|3(?:36|48|5[15689]|6[124579]|79|93)|" . "4(?:0[16]|1[14579]|5[89]|6[19]|7[4579]|88)|5(?:0[15]|" . "1[0134679]|25|3[124579]|55|74|8[124579])|6(?:22|" . "3[169]|4[49]|5[4578]|6[0134679])|7(?:6[02468]|70|93)|" . "8(?:0[05]|1[038]|2[079]))|" . "3(?:0(?:3[357]|54|6[16]|7[29]|8[47]|9[2589])|" . "1(?:0[124578]|1[0134679])|2(?:07|3[05]|4[09]|5[27]|" . "6[25689]|7[124578])|3(?:12|2[69]|3[37]|4[024579])|" . "4(?:3[0-4]|4[17]|5[037]|6[03679]|79|8[5689]|" . "9[124579])|5(?:2[579]|4[07]|5[037]|6[035689]|" . "7[124579])|6(?:14|3[05]|42|5[05]|6[03679])|7(?:28|" . "3[02-4]|6[05]|7[0369]))|" . "4(?:0(?:7[2468]|8[01])|1(?:7[27]|8[29]|9[369])|2(?:06|" . "1[149]|2[369]|3[2589]|4[35689]|5[124579])|3(?:21|" . "3[67]|4[38]|5[47]|6[0369]|7[2469]|8[2589]|9[124579])|" . "4(?:05|17|2[034679])|5(?:23|3[258]|4[124579]|64|" . "7[259]|8[2569]|9[24579])|6(?:13|2[69]|3[2589]|53|" . "7[03679])|7(?:06|22|3[16]|4[034679])|8(?:21|3[1248]|" . "4[27]|5[058]|6[124579]|89)|9(?:0[69]|1[258]|2[14578]|" . "3[0134679]))|" . "5(?:0(?:15|3[18]|45|5[03679])|1(?:7[23579]|8[01]|96)|" . "2(?:03|1[07]|2[38]|3[369]|4[2589])|3(?:05|2[38]|" . "3[14579]|65|78|8[2579]|9[124579])|4(?:17|28|3[38]|" . "4[3679]))|" . "6(?:006|1(?:3[13579]|49|8[579]|99)|2(?:2[7-9]|75|87|97)|" . "3(?:07|16|27|3[27]|44|5[169])|4(?:37|48|56|6[17]|" . "7[034679])|5(?:3[024]|4[79]|71|9[3679])|6(?:46|6[19]|" . "76|8[49]|9[48])|7(?:0[3679]|26|44|5[16]|6[1478]|" . "7[0134679])|8(?:29|3[135]|4[68]|5[57]|6[35]|7[0279]|" . "8[79]|91))|" . "7(?:6(?:5[246]|94)|7(?:0[49]|16|2[38]|3[16]|4[0369]|56|" . "6[17]|7[036]|8[147]|9[0134679])|8(?:15|3[0369]|55|66|" . "7[16]|8[03679])|9(?:33|4[48]|55|6[036]|7[124578]))|" . "8(?:0(?:48|5[0246]|7[38]|8[3679]|98)|1(?:12|2[06]|3[26]|" . "4[1478]|66|76|8[37]|9[49])|2(?:24|3[49]|4[47]|5[0369]|" . "6[2679])|3(?:15|3[37]|4[35]|5[14579])|4(?:6[2457]|" . "7[69])|5(?:32|49|5[49]|6[47]|7[0369]|8[0235689]|" . "9[124578])|6(?:0[0134679]|28|47|5[258]|6[124579])|" . "7(?:13|27|3[03679]))|" . "9(?:098|1(?:0[02468]|1[0-2457]|8[39]|9[49])|2(?:06|1[159]|" . "2[47]|3[258]|4[149]|5[2468]|6[138]|7[1469]|8[0235689]|" . "9[124579])|3(?:12|3[16]|4[168]|5[0369]|6[124579]|79|" . "95)|4(?:00|1[058]|2[34679])|5(?:13|39|4[01]|7[68]|" . "8[589]|9[124579])|6(?:18|39|50|6[49]|7[47]|8[235689]|" . "9[124579])|7(?:13|25|3[03679]|61|7[147]|8[07]|9[038])|" . "8(?:0[124579]|22|37|4[38]|5[369]|6[258]|7[124579])))" . "|8(?:0(?:33[135-79]|469|53[89]|6(?:3[46-9]|8[679])|79[6-9]|" . "80[1-579]|9(?:3[3579]|9[23579]))|" . "1(?:24[13579]|3(?:69|7[13579])|47[5-79]|5(?:39|4[13579])|" . "6(?:6[79]|7[13579])|73[579]|82[579]|92[579])|" . "2(?:0(?:08|24|3[12]|4[19]|5[47]|6[14579])|1(?:10|31|40|52|" . "66|78|94)|2(?:05|1[16]|2[39]|3[479]|56|6[69]|7[25689]|" . "8[124578]|9[0134679])|3(?:19|27|35|4[03679]|62|77|" . "8[03679]|9[0235689])|4(?:0[124579]|18|3[1-35689]|" . "4[124579]|67|8[178]|9[0134679])|5(?:15|38|4[1479]))|" . "3(?:0(?:2[246]|43|5[29]|64|7[15]|8[038]|9[38])|1(?:0[149]|" . "1[259]|2[235689]|3[124579])|2(?:09|2[49]|3[36]|4[26]|" . "5[034679]|78)|3(?:0[18]|1[37]|2[49]|3[49]|4[2469]|" . "5[2589]|6[124578]|7[0134679]|95)|4(?:04|1[0367]|35|" . "5[1478]|71|8[3679])|5(?:12|27|3[0369]|4[34679]|" . "5[0235689]|6[124579])|6(?:07|2[034679]|46|6[16]|" . "7[0134679]|84)|7(?:0[0378]|14|27|3[04579]))|" . "4(?:0(?:28|3[0246]|48|5[16]|6[169]|7[269]|8[2589]|" . "9[124578])|1(?:0[0134679]|3[07]|4[049]|5[25]|" . "6[034689]|7[124578]|8[0134679])|3(?:07|2[369]|" . "3[23579]|47|59|6[47]|7[158]|8[14579])|4(?:05|1[69]|" . "2[478]|3[124579]|53|78|89|94)|5(?:0[38]|1[38]|2[49]|" . "3[39]|4[34679]|5[0235689]|6[124578]|7[0134679]))|" . "5(?:0(?:49|5[1357]|7[27]|8[048]|9[258])|1(?:0[147]|" . "1[0134679]|2[0235689]|3[124579])|2(?:2[19]|3[258]|" . "4[147]|5[034689]|76|83|9[0368])|3(?:0[124579]|5[46]|" . "68|7[56]|86|9[159])|4(?:0[2568]|1[0134679]|35|4[57]|" . "5[2679]|6[124579])|5(?:21|40|51|6[07]|7[09]|86|" . "9[189])|6(?:0[49]|1[47]|2[25]|3[05]|4[0369]|5[235689]|" . "6[124579])|7(?:16|37|48|57|64|7[478]))|" . "6(?:1(?:5[02-4679]|6[13579]|79|99)|3(?:16|43|56|68|81|" . "9[19])|4(?:05|15|2[04]|38|4[147]|5[0369]|6[25]|" . "7[03679]|8[0235689]|9[124578])|5(?:0[024578]|" . "1[013479]|29|5[14689]|6[124578]|7[0134679])|6(?:09|" . "3[37]|4[137]|5[0357]|6[03689]|7[2-689]|8[124578]|" . "9[024578])|7(?:0[0134679]|20|3[235689]|4[124578]|" . "5[0134679])|8(?:07|25|3[036]|4[25]|5[034679]|" . "6[0235689]|7[124579]|99)|9(?:1[169]|2[0235689]|" . "3[124578]|4[0134679]|56|7[124578]|8[0134679]))|" . "7(?:4(?:3[579]|48|5[29]|6[36]|7[147]|8[0478]|9[034679])|" . "5(?:09|27|3[48]|4[14579]|61)|6(?:00|16|29|3[47]|" . "4[02578]|5[0134679]|6[0235689]|7[124579])|7(?:00|19|" . "2[47]|3[034679]|4[0235689]|5[124578]|6[0134679]|" . "7[0235689]|8[124579]))|" . "8(?:0(?:4[568]|69|7[49]|8[56]|9[0479])|1(?:3[18]|4[2579]|" . "6[17]|7[1589])|2(?:1[2-4]|39|5[05]|6[037]|7[1369]|" . "8[14579]|99)|3(?:1[679]|26|39|48|5[36]|6[1478]|" . "7[0134679])|4(?:00|1[06]|2[27]|3[0367]|4[1478]|" . "5[0134679]|7[17]|8[0134679]|99)|5(?:1[258]|2[14579])|" . "6(?:05|3[0134679]|62|77|82|9[03679])|7(?:09|1[89]))|" . "9(?:0(?:40|7[3579]|81)|1(?:29|34|43|5[05]|6[058]|" . "7[134679]|8[0235689]|9[124578])|2(?:3[13]|5[07]|6[49]|" . "7[58]|8[147]|9[0134679])|3(?:12|3[15]|4[034679]|" . "5[0235689]|6[124578])|4(?:07|15|2[03689]|3[124578]|" . "4[0134679])|5(?:18|2[02]|37|4[27]|5[158]|6[1478]|84|" . "97)|6(?:0[14578]|1[0134679])))" . "|9(?:0(?:4(?:0[2389]|1[19]|2[579]|3[19]|4[139]|5[13579]|6[19]|" . "7[1358]|8[029]|91)|5(?:1[38]|22|3[07]|4[27]|5[269]|62|" . "7[149]|8[47]|9[269])|6(?:0[27]|1[034679])|76[23568])|" . "1(?:0(?:5[2468]|7[47]|8[03568]|9[0134679])|1(?:26|54|" . "6[16]|7[147]|8[03679])|2(?:07|17|2[047]|3[035689]|" . "4[124579]|57|7[58]|8[124679])|3(?:01|15|2[0257]|" . "3[02468]|4[14679]|5[0235689]|6[124579])|4(?:13|38|" . "4[38]|5[269]|6[0235689]|7[124578]|8[0134679])|5(?:22|" . "41|5[05]|6[047]|7[258]|8[03679]|9[0235689])|" . "6(?:0[124578]|1[0134679]|2[0235689]|3[124579])|" . "7(?:1[079]|2[0235689]|3[124578]|4[0134679]|57|8[158]|" . "9[0235689])|80[124579])|" . "2(?:2(?:24|37|4[259]|5[369]|6[0235689]|7[124578]|" . "8[0134679])|3(?:18|3[149]|4[258]|5[358]|6[0134679])|" . "4(?:21|3[169]|4[24579])|5(?:07|2[16]|3[369]|" . "4[0235689]|5[124579])|6(?:37|48|55|6[05]|7[06]|8[15]|" . "9[034679])|7(?:0[0235689]|1[124578]|2[0134679]))|" . "3(?:0(?:4[79]|5[13579]|7[37]|8[03679]|9[0235689])|" . "1(?:0[124579]|28|3[38]|4[29]|5[258]|6[147]|7[03679]|" . "8[0235689]|9[124579])|3(?:09|26|3[369]|4[235689]|" . "5[124689])|4(?:13|26|37|4[49]|5[358]|6[2468]|" . "7[0134679]|8[0235689]|9[124579]))|" . "4(?:0(?:3[246]|51|6[05]|7[28]|8[169]|9[49])|1(?:0[47]|" . "1[0368]|2[147]|3[03679]|4[0235689]|5[124578]|" . "6[0134679])|2(?:09|27|3[49]|4[49]|5[0235689]|" . "6[124579])|3(?:15|27|3[0369]|4[24578]|5[0134679]|" . "6[0235689]|7[124579])|4(?:05|19|2[48]|3[1679]|47|69|" . "74|8[16]|9[16])|5(?:0[158]|1[38]|2[2679]|3[0235689]|" . "4[124578]|5[0134679]|6[0235689]|7[124579]))|" . "5(?:0(?:28|3[02])|1(?:00|1[19]|26|3[18]|45|5[28]|6[38]|" . "7[369]|8[0235689]|9[124579])|2(?:13|3[34679])|3(?:26|" . "3[69]|4[69]|5[25689]|6[124579])|4(?:4[4578]|6[0369]|" . "7[38]|8[258]|9[0134679])|5(?:0[0235689]|1[124579])|" . "6(?:15|32|43|5[29]|66|7[169]|8[0235689]|9[124578])|" . "70[0134679])|" . "6(?:0(?:4[79]|5[02])|1(?:0[36]|1[047]|2[0369]|3[258]|" . "4[25689]|5[124578]|6[0134679]|7[0235689]|8[124578]|" . "9[0134679])|2(?:15|24|3[17]|4[27]|5[037]|6[0489]|" . "7[124579])|3(?:17|28|3[27]|4[269]|5[258]|6[14579])|" . "4(?:50|65|7[269]|8[24679])|5(?:15|2[348]))|" . "7(?:0(?:7[02468]|8[024])|199|2(?:0[49]|1[58]|2[258]|" . "3[024679]|4[134679]|5[0235689]|6[124578]|7[0134679]|" . "8[0235689]|9[124579])|3(?:18|20|3[247]|4[0268]|" . "5[03579])|4(?:12|2[124]|37|4[07]|5[036]|6[149]|7[58]|" . "8[368]|9[0134679])|5(?:0[0235689]|1[134679]|" . "2[0235689]|3[124579])|6(?:1[68]|3[138]|4[057]|" . "5[034679]|88)|7(?:0[258]|1[147]|2[03-579]|37|53|6[29]|" . "7[235689]|8[0235689]|9[124579])|8(?:16|28|3[34679]|" . "4[0235689]|5[124579]|77|9[26])|9(?:0[0134679]|22|" . "4[147]|5[03679]|80|9[0369]))|" . "8(?:5(?:2[7-9]|30|4[47]|5[349]|74|87|9[03679])|6(?:17|" . "3[149]|46|6[03679]|7[38]|93)|7(?:0[148]|1[146]|24|39|" . "4[3469]))|" . "9(?:0(?:8[4-79]|9[1246-9])|1(?:0[02]|30|89|9[258])|3(?:10|" . "26|3[048])|4(?:2[3578]|3[89]|4[148])|51[08]|6(?:10|" . "2[58]|3[1468])|7(?:06|1[38]|3[45]|5[259]|6[258])|" . "8(?:1[79]|26|3[0147]|4[268]|6[79]|8[057]|9[1478])|" . "9(?:47|5[58]|7[46]|8[68]|9[1468])))" . ")", # # Postal codes of Greenland use a slice of the Danish postal code system. # Greenlands postal code consist of 4 digits, the first two being 39. # Except Santas postal code. He uses 2412. # # Data from: http://download.geonames.org/export/zip/GL.zip # Greenland => "(?k:2412" . "|39(?:0[05]|1[0-359]|2[0-4]|3[02]|40|5[0-35]|6[124]|" . "7[0-2]|8[0245]|92)" . ")", # # Postal codes for Italy use 5 digits, with leading 0s. Codes starting # with 4789 belong to San Marino. # # Data from: http://download.geonames.org/export/zip/IT.zip # Italy => "(?k:0(?:0(?:0(?:1[0-357-9]|2[0-9]|3[0-9]|4[0-9]|5[0-57-9]|" . "6[0-35-9])|1(?:19|2[0-8]|3[1-9]|4[1-9]|5[1-9]|6[1-9]|" . "7[1-9]|8[1-9]|9[1-9]))|" . "1(?:0(?:1[0-24-9]|2[0-8]|3[02-9])|100)|" . "2(?:0(?:1[0-689]|2[0-68]|3[0-57-9]|4[0-9])|100)|" . "3(?:0(?:1[0-46-9]|2[0-9]|3[0-9]|4[0-9])|100)|" . "4(?:0(?:1[0-9]|2[0-9])|100)|" . "5(?:0(?:1[0-8]|2[0-689]|3[0-2459])|100)|" . "6(?:0(?:1[024689]|2[0-9]|3[013-689]|4[0-79]|5[013-79]|" . "6[0-689]|7[023]|8[1349])|1(?:00|2[1-9]|3[124]))|" . "7(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[013-9])|100)|" . "8(?:0(?:1[0-35-9]|2[0-9]|3[0-9]|4[02-9])|100)|" . "9(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-57-9]|7[0-9]|8[0-68]|" . "9[0-9])|1(?:00|2[1-9]|3[14]|70)))" . "|1(?:0(?:0(?:1[0-9]|2[02-689]|3[0-24-8]|4[0-68]|5[0-9]|6[0-9]|" . "7[0-8]|8[0-8]|9[0-589])|1(?:00|2[1-9]|3[1-9]|4[1-9]|" . "5[1-6]))|" . "1(?:0(?:1[0-8]|2[0-9])|100)|" . "2(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-68]|6[0-689]|" . "7[0-9]|8[0-47-9])|100)|" . "3(?:0(?:1[0-27-9]|2[0-8]|3[0-9]|4[013-9]|60)|100|" . "8(?:1[124-8]|2[1-5]|3[13-6]|4[13-578]|5[1-6]|6[1-8]|" . "7[1-8]|8[1-8]|9[13-9])|900)|" . "4(?:0(?:1[0-9]|2[0-6]|3[0-79]|4[0-9]|5[0-57-9])|100)|" . "5(?:0(?:1[0-9]|2[0-9]|3[0-689]|4[0-689]|5[0-9]|6[0-9]|" . "7[0-9])|100)|" . "6(?:0(?:1[0-9]|2[0-9]|3[0-689]|4[0-9])|1(?:00|2[1-9]|" . "3[1-9]|4[1-9]|5[1-9]|6[1-7]))|" . "7(?:0(?:1[0-579]|2[0-8]|3[0-57-9]|4[0-8]|5[1-8])|100)|" . "8(?:0(?:1[0-9]|2[0-7]|3[0-9])|100)|" . "9(?:0(?:1[0-8]|2[0158]|3[0-478])|1(?:00|2[1-6]|3[1-9])))" . "|2(?:0(?:0(?:1[0-9]|2[0-9]|3[027]|40|56|6[0-9]|7[078]|8[0-9]|" . "9[0-9])|1(?:2[1-9]|3[1-9]|4[1-9]|5[1-9]|6[12])|" . "8(?:1[1-6]|2[1-6]|3[1-8]|4[1-7]|5[1-7]|6[1-7]|7[1-7]|" . "8[1-6])|900)|" . "1(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])|100)|" . "2(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[04-6]|6[0369]|7[0-9])|100)|" . "3(?:0(?:1[0-9]|2[0-79]|3[0-8])|100|8(?:0[124-8]|1[13-9]|" . "2[1-9]|3[1-8]|4[1-9]|5[12457]|6[124578]|7[013-9]|" . "8[013-9]|9[0-9])|900)|" . "4(?:0(?:1[0-9]|2[0-9]|3[013-9]|4[0-9]|5[0-9]|6[0-9])|" . "1(?:00|2[1-9]))|" . "5(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-589]|" . "7[0-9]|8[0-9])|1(?:00|2[1-9]|3[1-6]))|" . "6(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9])|100|8(?:1[1-8]|" . "2[1-8]|3[1-9]|4[1-9]|5[1-9]|6[1-7])|900)|" . "7(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-57-9])|100)|" . "8(?:0(?:1[0-79]|2[148]|4[0135-7]|5[03]|6[0-24-689]|" . "7[0-9])|100|8(?:0[1-5]|1[1-9]|2[1-8]|3[1-368]|4[1-5]|" . "5[1-9]|6[1-68]|7[135-79]|8[13-7]|9[13-9])|922)|" . "9(?:0(?:1[0-9]|2[0-9])|100))" . "|3(?:0(?:0(?:1[03-6]|2[0-9]|3[0-9])|1(?:00|2[1-6]|3[1-35]|" . "4[12]|7[0-5]))|" . "1(?:0(?:1[0-8]|2[0-9]|3[0-9]|4[0-9]|5[0-9])|100)|" . "2(?:0(?:1[02-6]|2[0-26-8]|3[0-7]|4[0-7])|100)|" . "3(?:0(?:1[0135-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|7[024-9]|" . "8[0-7]|9[02457-9])|1(?:00|70))|" . "4(?:0(?:1[0-24-8]|7[0-9])|1(?:00|2[1-9]|3[1-9]|4[1-9]|51|" . "70))|" . "5(?:0(?:1[0-9]|2[0-9]|3[0-24-8]|4[0-8])|1(?:00|2[1-9]|" . "3[1-9]|4[1-3]))|" . "6(?:0(?:1[0-6]|2[0-8]|3[0-6]|4[0235-7]|5[0-7]|6[0-6]|" . "7[0-35-8])|100)|" . "7(?:0(?:1[0-9]|2[0-4689]|3[0-25689]|4[0-79]|5[0-9]|" . "6[02-46-9])|1(?:00|2[1-9]|3[1-9]|42))|" . "8(?:0(?:1[0-35-9]|2[0-9]|3[0-9]|4[0-35-9]|5[0-79]|6[0-9]|" . "7[0-9]|8[0-35-9])|100)|" . "9(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-8])|100))" . "|4(?:0(?:0(?:1[0-9]|2[0-7]|3[02-8]|4[1-3568]|5[0-79]|6[0-9])|" . "1(?:00|2[1-9]|3[1-9]|41))|" . "1(?:0(?:1[0-9]|2[0-35-9]|3[0-9]|4[02-689]|5[1-9])|100)|" . "2(?:0(?:1[0-9]|2[0-8]|3[0-579]|4[0-9])|100)|" . "3(?:0(?:1[0-57-9]|2[0-24589]|3[025-9]|4[0-57-9]|" . "5[0-35689])|1(?:00|26))|" . "4(?:0(?:1[0-24-69]|2[0-35-9]|3[03-579]|4[1-357-9])|100)|" . "5(?:0(?:1[0-2457-9]|2[0-7]|3[0-9])|100)|" . "6(?:0(?:1[0-47-9]|2[02-9]|3[0-35-79]|4[0-9])|100)|" . "7(?:0(?:1[0-9]|2[013578]|3[02459]|4[23])|1(?:00|2[12])|" . "8(?:14|2[24-6]|3[2-8]|4[1-3]|5[3-5]|6[1-7])|900)|" . "8(?:0(?:1[0-578]|2[024-7])|100))" . "|5(?:0(?:0(?:1[02-489]|2[0-35-8]|3[1-9]|41|5[0-689]|6[0-8])|" . "1(?:00|2[1-79]|3[1-79]|4[1-5]))|" . "1(?:0(?:1[0-35-9]|2[0148]|3[014-79])|100)|" . "2(?:0(?:1[014-8]|2[0-24-9]|3[0-35-8]|4[13-8])|100)|" . "3(?:0(?:1[1-9]|2[0-7]|3[014-7]|4[0-357-9])|100)|" . "4(?:0(?:1[0-6]|2[136-9]|3[358])|100)|" . "5(?:0(?:1[0-689]|2[02357]|3[0-68]|4[0-2579]|5[14]|" . "6[0-24])|100)|" . "6(?:0(?:1[0-279]|2[0-589]|3[0-8]|4[013-68])|1(?:00|" . "2[1-8]))|" . "7(?:0(?:1[467]|2[0-3578]|3[0-46-9])|1(?:00|2[1-8]))|" . "8(?:0(?:1[0-2457-9]|2[02-7]|3[1346-8]|4[02-5]|5[13-5])|" . "100)|" . "9(?:0(?:1[1356]|2[14-6])|100))" . "|6(?:0(?:0(?:1[013589]|2[0-24-7]|3[013-9]|4[01348])|1(?:00|" . "2[1-9]|31))|" . "1(?:0(?:1[0-4]|2[0-689]|3[02-47-9]|4[0-9])|100)|" . "2(?:0(?:1[0-2457-9]|2[0-24-9]|3[24-689])|100)|" . "3(?:0(?:20|31|6[1-9]|7[1-9]|8[1-8]|9[1-6])|100|8(?:1[1-6]|" . "2[1-8]|3[1-9]|4[1-8]|5[1-8])|900)|" . "4(?:0(?:1[0-68]|2[013-8]|3[0-79]|4[0-79])|100)|" . "5(?:0(?:1[0-579]|2[02-9])|1(?:00|2[1-9]|3[12]))|" . "6(?:0(?:1[0-24-9]|2[0-36]|3[0-46-8]|4[0-7]|5[0-24])|100)|" . "7(?:0(?:1[02-579]|2[0-9]|3[0-9]|4[013-9]|5[0-9]|" . "6[0-46-9])|100))" . "|7(?:0(?:0(?:1[013-9]|2[0-9]|3[2378]|4[2-4]|5[46])|1(?:00|" . "2[1-9]|31))|" . "1(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-3578])|100)|" . "2(?:0(?:1[02-9]|2[0-9])|100)|" . "3(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])|100)|" . "4(?:0(?:1[0-9]|2[0-8])|100)|" . "5(?:0(?:1[0-9]|2[0-9])|100)|" . "6(?:01[1-7]|12[135]))" . "|8(?:0(?:0(?:1[0-46-9]|2[0-9]|3[0-689]|4[0-24-9]|5[013-9]|" . "6[0-35-79]|7[013-9])|1(?:00|2[1-9]|3[1-9]|4[1-7]))|" . "1(?:0(?:1[0-467]|2[0-578]|3[0-9]|4[0-4679]|5[0-9])|100)|" . "2(?:0(?:1[0135-9]|2[0-9]|3[0-46-8])|100)|" . "3(?:0(?:1[0-8]|2[0-9]|3[0-24-9]|4[0-9]|5[0-9])|100)|" . "4(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[02-9]|5[0-35-79]|6[0-25-9]|" . "7[03-9]|8[0-8]|9[0-25689])|1(?:00|2[1-9]|3[1-5]))|" . "5(?:0(?:1[0-8]|2[0-9]|3[0-9]|4[02-46-9]|5[0-9])|100)|" . "6(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|7[0-57-9]|8[0-9]|" . "9[0-7])|1(?:00|70))|" . "7(?:0(?:1[0-9]|2[0-46-9]|3[0-8]|4[0-8]|5[0-8]|6[0-24679]|" . "7[0-6])|100)|" . "8(?:0(?:2[0-245]|4[0-24-79]|5[014-6]|6[02457-9]|70)|100|" . "8(?:1[1-9]|2[1-5]|3[1-8]|4[12])|900)|" . "9(?:0(?:1[0-8]|2[0-9]|3[0-9]|4[0-9]|5[0246-8]|6[02-59])|" . "1(?:00|2[1-9]|3[1-5])|8(?:1[2-9]|2[1-4]|3[1-4]|4[1-4]|" . "5[1-3]|6[1-46-8])|900))" . "|9(?:0(?:0(?:1[0-9]|2[0-9]|3[0-9]|4[0-9])|1(?:00|2[1-9]|3[1-9]|" . "4[1-9]|51))|" . "1(?:0(?:1[0-9]|2[0-9])|100)|" . "2(?:0(?:1[0-9]|2[0-9])|100)|" . "3(?:01[0-9]|100)|" . "4(?:01[0-9]|100)|" . "5(?:0(?:1[0-9]|2[0-2457-9]|3[0-9]|4[0-9])|1(?:00|2[1-9]|" . "31))|" . "6(?:01[0-9]|100)|" . "7(?:01[0-9]|100)|" . "8(?:0(?:2[0-35-9]|3[0-9]|4[0-9]|5[013-9]|6[0-9]|7[0-9])|" . "1(?:00|2[1-9]|3[1-9]|4[1-9]|5[1-9]|6[1-8])))" . ")", # # The numbering system for postal codes of Liechtenstein is part of # the numbering system for Swiss postal codes. Four digits are used # and all postal codes in Liechtenstein start with 94, the third # digit an 8 or a 9. # # Data from: http://download.geonames.org/export/zip/LI.zip # # The file above does not include 9489 (instead, a different file # reports it to be in CH), but 9489 is the postal code for Schaan Log, # which is located in Liechtenstein. # # http://postal-codes.findthedata.com/l/57083/9489-Schaan-Log # Liechtenstein => "(?k:94(?:8[5-9]|9[0-8]))", # # https://www.post.lu/documents/10181/2314856/EptSggaCsv.csv/ # ee8fa0de-5e84-4e31-8cbd-b7b57679c21a?param=0.19755403072045696 # (http://bit.ly/1PeTVqY) # Luxembourg => "(?k:0(?:1(?:01|2[13-5]|3[12]|4[1-3]|61|7[13]|8[1-3]|9[12])|" . "2(?:02|11|31|41|51|6[23]|91)|" . "3(?:2[1-5]|32|42|6[12]|72|8[1-3]|91)|" . "4(?:0[1-3]|1[12]|2[12]|4[1-356]|5[13]|6[2-4]|7[12]|8[12]|" . "9[1-7])|" . "5(?:21|3[12]|5[1-4]|6[12]|8[1-4])|" . "6(?:1[12]|4[1-4]|6[1-4]|7[12]|9[12])|" . "7(?:2[1-3]|5[1-4]|6[13]|7[12])|" . "8(?:0[1-9]|1[1-4]|2[1-3]|3[1-4]|41|5[2-5]|61|81)|" . "9(?:0[134]|1[1-4]|2[12]|4[2-4]|5[1-4]|6[1-3]|7[1-3]|" . "8[1-3]|9[1-5]))" . "|1(?:0(?:09|1[0-9]|2[0-9]|30|50|60|90)|" . "1(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-39]|6[01])|" . "2(?:0[89]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-9]|" . "7[0-9]|8[0-3])|" . "3(?:09|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-9]|7[0-6])|" . "4(?:09|1[1-9]|2[0-9]|3[0-4]|4[589]|5[0-9]|6[0-9]|7[0-9]|" . "8[0-4]|9[09])|" . "5(?:0[89]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-2])|" . "6(?:1[013-9]|2[0-9]|3[0-9]|4[0-9]|5[0-6]|6[01]|70)|" . "7(?:09|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-3])|" . "8(?:1[1-8]|2[0-2]|3[1-9]|4[0-356]|5[0-9]|6[0-8]|7[0-3]|" . "8[0-2]|9[6-9])|" . "9(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-4]))" . "|2(?:0(?:1[0-9]|20|8[024-9]|9[013-9])|" . "1(?:1[1-9]|2[0-57-9]|3[0-57-9]|4[0-9]|5[0-9]|6[0-9]|" . "7[0-9]|8[0-4])|" . "2(?:1[0-5]|2[0-9]|3[0-4]|4[0-3]|6[1-35-9]|7[0-3])|" . "3(?:0[89]|1[0-9]|2[02-46-9]|3[0-9]|4[0-9]|5[0-9]|6[01]|70|" . "8[01])|" . "4(?:09|1[0-9]|2[02-9]|3[0-6]|4[0-9]|5[0-4])|" . "5(?:1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-7])|" . "6(?:09|1[0-79]|2[0-9]|3[0-7]|5[1-4]|6[1-9]|7[0-4]|8[01])|" . "7(?:1[1-9]|2[0-9]|3[0-46-9]|4[01]|6[1-4])|" . "8(?:50|60|8[07-9])|" . "9(?:00|1[0-689]|2[0-25689]|3[0-9]|4[0-269]|5[0-8]|" . "6[014-68]|7[14-9]|8[0-8]|9[0-24-9]))" . "|3(?:2(?:0[15689]|1[0-9]|2[0-59]|3[0-9]|4[0-39]|5[0-9]|" . "6[015-79]|7[0-9]|8[0-8]|90)|" . "3(?:1[13-8]|2[0-9]|3[02-7]|4[015-9]|5[0-9]|6[0-9]|7[0-8]|" . "8[02-69]|9[0-8])|" . "4(?:0[1-39]|1[0-9]|2[0-9]|3[0-3569]|4[0-9]|5[0-4]|6[0-9]|" . "7[0-6]|8[0-9]|9[0-3])|" . "5(?:0[1-9]|1[0-7]|2[0-69]|3[0-29]|4[0-9]|5[0-5]|6[0-9]|" . "7[0-6]|8[2-589]|9[0-8])|" . "6(?:01|1[1-7]|2[0-2]|3[015-8]|4[0-4]|5[0-8]|60|7[0-9]|" . "8[0-2])|" . "7(?:0[15]|1[0-9]|2[0-9]|3[013-9]|4[0-4]|5[0-5]|6[1-8]|" . "7[0-6]|8[0-246-9]|90)|" . "8(?:01|1[0-9]|2[0-6]|3[0-9]|4[0-4]|5[0-9]|6[0-4]|7[0-9]|" . "8[0-4]|9[5-9])|" . "9(?:0[19]|1[0-9]|2[0-9]|3[0-9]|4[013-5]|6[01]|8[05]))" . "|4(?:0(?:0[1-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-9]|" . "7[0-4]|8[0-68])|" . "1(?:0[0-35-9]|1[0-689]|2[0-356]|3[0-9]|4[0-39]|5[0-6]|" . "6[4-9]|7[0-9]|80)|" . "2(?:0[1-9]|1[013467]|2[0-2]|3[0-9]|4[0-9]|5[0-6]|6[0-8]|" . "7[0-25-9]|8[0-39])|" . "3(?:0[1-9]|1[04-9]|2[0-8]|3[0-7]|4[0-9]|5[0-5]|6[0-9]|" . "7[0-3]|8[0-5]|9[0-8])|" . "4(?:0[125-9]|1[0-9]|2[0-39]|3[0-9]|4[0-9]|5[019]|6[0-9]|" . "7[05-9]|8[0-9]|9[0-49])|" . "5(?:0[1-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-59]|" . "7[0-9]|8[0-3]|9[0-9])|" . "6(?:0[1-9]|1[0-3]|2[0-9]|3[0-689]|4[0-9]|5[0136-8]|6[0-9]|" . "7[0-26-9]|8[0-9]|9[0-36-8])|" . "7(?:0[126-9]|1[0-9]|2[0-2]|3[0-9]|4[0-5]|5[0-9]|6[0-3]|" . "7[0-9]|8[0-6]|9[5-8])|" . "8(?:0[124-9]|1[0-589]|2[02-69]|3[0-47-9]|4[02-9]|5[03]|" . "7[0-9]|8[0-9]|9[0-5])|" . "9(?:0[126-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-689]|6[0-9]|" . "7[0-9]|8[0-24-9]|9[0-9]))" . "|5(?:2(?:01|1[1-9]|2[0-2]|3[0-9]|4[0134]|5[0-6]|80|9[09])|" . "3(?:1[024-8]|2[02468]|3[0-79]|4[0-2]|5[1-359]|6[0-9]|" . "7[0-8]|80)|" . "4(?:0[1-578]|1[0-9]|2[1-79]|3[0-59]|4[0-7]|5[01]|6[056]|" . "7[01]|8[0-3589]|9[59])|" . "5(?:0[15-7]|1[1-9]|2[0-3]|3[0-9]|4[0489]|5[0-9]|6[01]|" . "7[0-7])|" . "6(?:0[125]|1[0-9]|2[06-9]|3[0-9]|40|5[0-9]|7[015]|8[0-7]|" . "9[0-358])|" . "7(?:01|1[0-46-9]|2[0-3]|30|4[01]|5[0-6]|6[0-2]|7[0-6])|" . "8(?:0[189]|1[0-9]|2[0-689]|3[0-9]|4[0-46]|5[02-69]|6[0-9]|" . "7[0-68]|8[04-9]|9[0-389])|" . "9(?:4[0-3]|5[0-9]|6[0-49]|7[0-8]))" . "|6(?:1(?:01|1[1-9]|2[0-59]|3[0-9]|4[0-9]|5[05]|6[0-3569]|" . "7[015]|8[0-9]|9[05-7])|" . "2(?:01|1[0-5]|25|3[01589]|4[0356]|5[0-25])|" . "3(?:01|1[0-5]|40|50|60|70|80)|" . "4(?:0[12689]|1[0-9]|2[0-3]|3[0-9]|4[0-35-9]|5[0-5]|6[0-9]|" . "7[0-9]|8[0-8]|9[0-79])|" . "5(?:5[0-357-9]|6[02]|7[0-29]|8[0-35-7]|90)|" . "6(?:01|1[0-9]|2[0-3]|3[0-8]|4[5-9]|5[01]|6[013569]|7[0-8]|" . "8[0-9]|9[0-35])|" . "7(?:01|1[1-9]|2[0-6]|3[0-9]|4[0-5]|5[0-9]|6[0-5]|7[0-9]|" . "8[0-6]|9[0-6])|" . "8(?:15|3[0-9]|4[0-2]|5[0-28]|6[89]|7[01]|80)|" . "9(?:0[156]|1[0-9]|2[1-356]|3[01349]|4[0-8]|5[0156]|" . "6[0-29]|7[0-9]|8[0-25-9]|9[0-25-9]))" . "|7(?:2(?:0[129]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-489]|" . "7[04])|" . "3(?:0[2-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-4]|" . "7[0-9]|8[0-4]|9[0-25-7])|" . "4(?:09|1[0-25-8]|2[013-5]|3[0-35]|4[0-9]|5[0-8]|6[0-5]|" . "7[0135]|8[0-2])|" . "5(?:0[125-8]|1[1-9]|2[0-6]|3[1-9]|4[0-7]|5[3-9]|6[0-9]|" . "7[0-2]|9[0-9])|" . "6(?:01|1[023589]|2[0-7]|3[3-69]|4[019]|5[0-3]|6[0-4]|" . "7[03]|8[01])|" . "7(?:0[13]|1[0-6]|2[0-467]|3[0-57-9]|4[01]|5[089]|6[0-9]|" . "7[0-47-9]|8[0-9]|9[0-5]))" . "|8(?:0(?:0[125-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|6[0-9]|" . "7[0-9]|8[0-9]|9[0-9])|" . "1(?:1[0-25-9]|2[013-9]|3[0-57-9]|4[0-25-79]|5[0-46-9]|" . "6[05-7]|79|8[0-9]|9[01])|" . "2(?:0[159]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-589]|6[0-9]|" . "7[0-47-9]|8[0-9]|9[0-5])|" . "3(?:0[1-3689]|1[0-9]|2[0-9]|3[0-9]|4[0-5]|5[0-9]|6[0-9]|" . "7[0-689]|8[013-8]|9[0-689])|" . "4(?:01|1[0-5]|2[0-4]|3[5-8]|4[0-57-9]|5[0-3]|6[0-9]|" . "7[0-9]|80)|" . "5(?:0[126-9]|1[01]|2[1-35-9]|3[0137-9]|4[0-6]|5[0-278]|" . "6[0-2])|" . "6(?:0[69]|1[0-5]|20)|" . "7(?:0[15-8]|1[015]|20)|" . "8(?:0[125689]|1[1-46-9]|2[0-6]|3[1-58]))" . "|9(?:0(?:0[1-46]|1[0-9]|2[0-9]|3[0-3]|4[0-8]|5[0-6]|6[0-9]|" . "7[0-2]|8[0-9]|9[0-489])|" . "1(?:1[5-9]|2[0-9]|3[0-7]|4[024-7]|5[013-8]|6[013-9]|" . "7[0-35-79]|8[0-4689]|9[01])|" . "2(?:0[1-9]|1[0-8]|2[014-9]|3[0-9]|4[0-59]|5[0-9]|6[0-8]|" . "7[35-9]|8[0-9]|9[0-4])|" . "3(?:30|40|5[0-79]|6[014-689]|7[0-35-8]|8[0-2]|9[0-25])|" . "4(?:0[15-9]|1[0-24-9]|2[0-6]|40|5[1-9]|6[1-6])|" . "5(?:0[126]|1[0-9]|2[0-3]|3[0-9]|4[0-5]|5[0-9]|60|7[0-9])|" . "6(?:3[1-35-9]|4[013-578]|5[013-79]|6[0235689]|7[0-468]|" . "8[12479]|9[06])|" . "7(?:0[16-9]|1[0-5]|3[78]|4[0-9]|5[1-9]|6[0-9]|7[0-69]|80)|" . "8(?:0[15-9]|3[013-9]|4[01])|" . "9(?:0[1-35-9]|1[0-3]|4[02-468]|5[0246]|6[02468]|7[0246]|" . "8[02]|9[0-39]))" . ")", # # Postal codes of Monaco are part of the system used for France. # Monaco uses postal codes starting with 980. 98000 is for all # physical addresses, while numbers ending in 01 - 99 are reserved # for special deliveries. # # http://www.upu.int/fileadmin/documentsFiles/activities/ # addressingUnit/mcoEn.pdf # Monaco => "(?k:980[0-9][0-9])", # # Postal codes in Norway use 4 digits. Leading 0s happen, but not all # combinations are used. # # Data from: http://download.geonames.org/export/zip/GL.zip # Norway => "(?k:0(?:0(?:01|1[058]|2[14-68]|3[0-47]|4[05-8]|5[015]|60|80)|" . "1(?:0[1-79]|1[0-9]|2[0-589]|3[0-9]|5[0-57-9]|6[0-24-9]|" . "7[0-9]|8[0-8]|9[0-68])|" . "2(?:0[1-478]|1[1-8]|30|4[047]|5[0-9]|6[02-8]|7[0-9]|" . "8[0-467])|" . "3(?:0[1-9]|1[13-9]|23|30|4[09]|5[0-9]|6[0-9]|7[0-9]|" . "8[0-3])|" . "4(?:0[1-689]|1[0-35]|2[1-4]|4[0-25]|5[0-24-9]|6[0-57-9]|" . "7[02-9]|8[0-9]|9[0-6])|" . "5(?:0[1-9]|1[0-35-8]|20|40|5[0-9]|6[0-9]|7[0-9]|8[0-9]|" . "9[0-8])|" . "6(?:0[1-9]|1[1-9]|2[0-46]|5[0-9]|6[0-9]|7[0-9]|8[0-9]|" . "9[0-4])|" . "7(?:0[125]|1[02]|5[0-8]|6[03-8]|7[0-9]|8[1-9]|9[01])|" . "8(?:0[15-7]|40|5[0-8]|6[0-4]|7[0-7]|8[0-4]|9[01])|" . "9(?:0[1-578]|1[3-5]|5[0-9]|6[02-489]|7[0-35-9]|8[0-8]))" . "|1(?:0(?:0[135-9]|11|5[1-6]|6[1-57-9]|71|8[1346-9])|" . "1(?:0[129]|12|5[0-8]|6[0-9]|7[026-9]|8[12457-9])|" . "2(?:0[1-57]|1[45]|5[0-9]|6[236]|7[0-589]|8[13-6]|9[0145])|" . "3(?:0[0-79]|1[1-46-9]|2[1-9]|3[0-9]|4[0-24689]|5[0-46-9]|" . "6[0-9]|7[1-35-9]|8[013-9]|9[0-79])|" . "4(?:0[0-9]|1[0-9]|2[019]|3[0-2]|4[0-9]|5[013-578]|6[89]|" . "7[0-9]|8[0-8])|" . "5(?:0[1-4689]|1[0-9]|2[0-689]|3[0-9]|4[015]|5[056]|60|70|" . "8[01]|9[0-36-9])|" . "6(?:0[1-9]|1[02-9]|2[014-689]|3[02-46-9]|4[0-2]|" . "5[013-57-9]|6[1-7]|7[0-35689]|8[02-4]|9[02])|" . "7(?:0[1-9]|1[0-589]|2[0-7]|3[03-589]|4[0235-7]|5[1-479]|" . "6[013-9]|7[126-9]|8[1-9]|9[0-4689])|" . "8(?:0[1-9]|1[1-6]|2[0357]|3[0-3]|5[019]|6[0167]|7[0158]|" . "80|9[0-3])|" . "9(?:0[013]|1[0-2467]|2[013-9]|3[01]|4[01]|5[04]|6[013]|" . "7[01]))" . "|2(?:0(?:0[013-9]|1[0-9]|2[0-8]|3[0-6]|4[01]|5[0-8]|6[0-26-9]|" . "7[0-46]|8[01]|9[0-3])|" . "1(?:0[01]|1[046]|2[03]|3[034]|5[01]|6[0-24-6]|70)|" . "2(?:0[1-689]|1[0-46-9]|2[03-6]|3[0235]|40|56|6[014-6]|" . "7[01]|8[03])|" . "3(?:0[1-9]|1[25-9]|2[0-6]|3[024-8]|4[0145]|5[035]|6[045]|" . "72|8[0-9]|9[01])|" . "4(?:0[1-35-9]|1[0-2568]|2[0-357-9]|3[025-8]|4[0368]|5[01]|" . "60|7[6-8]|8[015])|" . "5(?:0[01]|1[02]|4[024]|5[025]|6[01]|8[0-24])|" . "6(?:0[1-9]|1[0-9]|2[4-69]|3[0-79]|4[0235-9]|5[1-36-9]|" . "6[0-9]|7[02-7]|8[02-8]|9[03-5])|" . "7(?:1[1-8]|20|30|4[023]|50|60|70)|" . "8(?:0[1-9]|1[015-9]|2[0-257]|3[0-26-9]|4[036-9]|5[013478]|" . "6[0-2467]|7[09]|8[0-2]|9[03])|" . "9(?:0[017]|1[078]|2[039]|3[03679]|4[03]|5[02-49]|6[067]|" . "7[3-57]|85))" . "|3(?:0(?:0[1-9]|1[1-9]|2[1-9]|3[0-9]|4[0-8]|5[013-8]|6[01]|" . "7[015]|8[0-9]|9[025])|" . "1(?:0[13-9]|1[0-9]|2[0-8]|3[1-357-9]|4[0-58]|5[0-47-9]|" . "6[0-9]|7[0-9]|8[0-9]|9[1-69])|" . "2(?:0[1-9]|1[0-9]|2[0-9]|3[0-9]|4[0-69]|5[1-9]|6[0-57-9]|" . "7[014-7]|8[0-245]|9[0-24-7])|" . "3(?:0[01]|2[0-2]|3[01]|4[0-2]|5[01589]|6[01]|7[01])|" . "4(?:0[1-9]|1[0-4]|2[015-8]|3[01]|4[0-2]|7[0-24-8]|8[0-4]|" . "9[01])|" . "5(?:0[1-47]|1[0-9]|2[0-689]|3[013-9]|4[014]|5[01]|6[01]|" . "7[015-79]|8[018]|9[35])|" . "6(?:0[1-689]|1[0-9]|2[0-46-9]|3[0-2]|4[6-8]|5[0268]|" . "6[0156]|7[1-9]|8[0134]|9[0-27])|" . "7(?:0[1-578]|1[0-9]|2[0-9]|3[0-9]|4[0-46-9]|5[03]|6[06]|" . "70|8[01357-9]|9[0-68])|" . "8(?:0[0-5]|1[0-2]|2[05]|3[0-6]|4[01489]|5[03-5]|64|70|" . "8[02-8]|9[0135])|" . "9(?:0[1-6]|1[0-9]|2[0-24589]|3[013679]|4[0-46-9]|50|" . "6[05-7]|70|9[13-9]))" . "|4(?:0(?:0[1-9]|1[0-9]|2[0-9]|3[1-6]|4[1-9]|5[0-9]|6[4-9]|" . "7[06-9]|8[1-9]|9[0-9])|" . "1(?:0[02]|1[09]|2[0346-9]|3[0479]|4[68]|5[02-4689]|" . "6[01347-9]|7[034]|8[027]|98)|" . "2(?:0[0189]|3[03-579]|4[04]|50|6[0245]|7[024-6]|80|" . "9[14-9])|" . "3(?:0[1-9]|1[0-9]|2[1-9]|3[02359]|4[0-9]|5[2-8]|" . "6[02-57-9]|7[0-689]|8[0179]|9[1-8])|" . "4(?:0[0-3]|20|3[2468]|4[013]|6[0235]|73|8[045]|9[0-2])|" . "5(?:0[1-69]|1[3-79]|2[0-589]|3[246]|4[04]|5[0-478]|6[03]|" . "7[5-79]|8[068]|9[056])|" . "6(?:0[4-689]|1[0-9]|2[0-689]|3[0-9]|4[05-7]|5[16-9]|" . "6[1-6]|7[0-9]|8[1-9]|9[13-9])|" . "7(?:0[0-35]|15|2[04]|3[03-57]|4[12578]|5[4-6]|6[068]|70|" . "80|9[0-5])|" . "8(?:0[1-489]|1[025-8]|2[013-578]|3[024689]|4[1-46-9]|" . "5[1-9]|6[1-589]|7[06-9]|8[4-9]|9[1-468])|" . "9(?:0[0-29]|1[0256]|20|34|5[0-35]|7[1-4]|8[05]|9[034]))" . "|5(?:0(?:0[3-9]|1[0-9]|2[0-2]|3[1-9]|4[1-35]|5[2-9]|6[378]|" . "7[235]|8[129]|9[346-9])|" . "1(?:0[14-9]|1[13-9]|2[124]|3[0-24-7]|4[1-8]|5[1-5]|6[0-5]|" . "7[0-46-9]|8[34])|" . "2(?:0[0-36-9]|1[0-25-8]|2[1-9]|3[0-25-9]|4[34]|5[1-47-9]|" . "6[0-578]|8[1-6]|9[139])|" . "3(?:0[0-9]|1[04589]|2[1-35-79]|3[13-7]|4[1-35-7]|" . "5[03-578]|6[0356]|7[1489]|8[0-24578]|9[2-46-9])|" . "4(?:0[1-46-9]|1[0-9]|2[0378]|3[07]|4[03-579]|5[0-57-9]|" . "6[02-5]|7[02-6]|8[046]|9[89])|" . "5(?:0[1-9]|1[124-9]|2[1-357-9]|3[1-8]|4[124-9]|5[01459]|" . "6[0135-8]|7[04-68]|8[02-689]|9[013-68])|" . "6(?:0[0-245]|1[024]|2[06-9]|3[025-7]|4[0-35-79]|5[023]|" . "8[0357]|9[03-6])|" . "7(?:0[0-9]|1[0-589]|2[1-9]|3[01346]|4[1-35-9]|5[0-2]|" . "6[03]|7[036-9]|8[0-8])|" . "8(?:0[3-9]|1[0-9]|2[0-24589]|3[1568]|4[157-9]|5[1-47-9]|" . "6[1-489]|7[1-36-9]|8[1246-9]|9[23569])|" . "9(?:0[2-46-8]|1[1-8]|3[16-9]|4[1378]|5[1-7]|6[0-267]|" . "7[07-9]|8[13467]|9[134]))" . "|6(?:0(?:0[1-9]|1[0-9]|2[0-68]|3[05-9]|4[03-8]|5[0-257-9]|" . "6[02-57-9]|7[06]|8[02-579]|9[0-24-689])|" . "1(?:0[0-6]|10|20|3[39]|4[0-469]|5[0-6]|6[0156]|7[04]|" . "8[34]|9[06])|" . "2(?:0[01]|1[0-68]|2[024]|3[089]|4[09]|5[09]|6[03-5]|7[02]|" . "8[0-35]|9[02-4])|" . "3(?:0[01]|1[05]|20|3[09]|50|6[034]|8[67]|9[0-9])|" . "4(?:0[1-57-9]|1[0-689]|2[1-359]|3[013-6]|4[03-57]|5[03-7]|" . "6[0-2]|7[0256]|8[01346-8]|9[0349])|" . "5(?:0[1-46-9]|1[0-24-8]|2[0-59]|3[089]|7[01]|90)|" . "6(?:0[01]|1[0-3]|2[0289]|3[0136-9]|4[02-5]|5[0235-9]|" . "7[04]|8[036-9]|9[0347-9])|" . "7(?:0[0-478]|1[013-9]|2[136-9]|3[0147]|4[01]|5[01]|6[13]|" . "7[0-26-9]|8[1-489]|9[1-35-9])|" . "8(?:0[0-9]|1[0-57-9]|2[1-36-9]|4[1378]|5[1-689]|6[13689]|" . "7[0-35-9]|8[124-8]|9[13-689])|" . "9(?:0[0-39]|1[24-9]|2[146-9]|4[0-2467]|5[1378]|6[1346-9]|" . "7[13578]|8[0-8]|9[1356]))" . "|7(?:0(?:0[3-6]|1[0-689]|2[0-9]|3[0-46-9]|4[0-9]|5[0-46-9]|" . "7[024589]|8[0-389]|9[127-9])|" . "1(?:0[015]|1[02-49]|2[015-79]|30|4[02]|5[02369]|6[05-9]|" . "7[06-8]|80|9[04])|" . "2(?:0[0136]|1[1-3]|2[13478]|3[124-689]|4[0-367]|5[025-79]|" . "6[013468]|7[03]|8[024-9]|9[0158])|" . "3(?:0[0-2]|1[05689]|2[0179]|3[1-68]|4[0-35]|5[013-578]|61|" . "7[024]|8[03467]|9[1-37-9])|" . "4(?:0[0-9]|1[0-9]|2[0-24-9]|3[0-9]|4[0-9]|5[0-9]|" . "6[1-35-9]|7[0-9]|8[0-9]|9[0-7])|" . "5(?:0[0-9]|1[02-479]|2[059]|3[013]|4[019]|5[01]|6[0236]|" . "70|8[0134]|9[016])|" . "6(?:0[0-9]|1[09]|2[02-49]|3[0-4]|5[0-8]|60|7[01]|90)|" . "7(?:0[1-57-9]|1[0-8]|2[4-69]|3[024-9]|4[024-68]|5[01]|" . "6[01]|7[017]|9[0167])|" . "8(?:0[0-58]|1[07-9]|2[02]|56|6[0349]|7[013]|8[24]|" . "9[02368])|" . "9(?:0[01]|4[04]|50|60|7[01367]|8[0-25]|9[034]))" . "|8(?:0(?:0[1-9]|1[0-69]|2[0-36-9]|3[0-278]|4[17-9]|5[068]|" . "6[34]|7[0-69]|8[46-9]|9[1-8])|" . "1(?:0[0238]|1[048]|2[08]|3[0568]|4[0569]|5[017-9]|6[018]|" . "7[08]|8[124-9]|9[035-8])|" . "2(?:0[0-35-9]|1[014589]|2[06]|3[0-3]|5[0156]|6[0146]|" . "7[013-68]|8[135689]|9[01478])|" . "3(?:0[0159]|1[0-7]|2[02-68]|40|5[27]|60|7[0236-8]|" . "8[02478]|9[0238])|" . "4(?:0[0-9]|1[0-6]|2[68]|3[0289]|4[57]|5[059]|6[59]|7[05]|" . "8[013-589]|93)|" . "5(?:0[1-9]|1[02-8]|2[023]|3[013-69]|4[036]|9[01])|" . "6(?:0[1-478]|1[03-8]|2[246]|3[048]|4[0-36-8]|5[124-9]|" . "6[013-6]|72|8[01]|9[01])|" . "7(?:0[01]|2[03-5]|3[0235]|4[023]|5[02-4]|6[12467]|70)|" . "8(?:0[0-59]|13|2[07]|30|4[24]|5[0-24]|6[015]|70|80|" . "9[0-27])|" . "9(?:0[0-24-9]|10|2[0-2]|6[01]|76|8[015]))" . "|9(?:0(?:0[6-9]|1[0-9]|2[02479]|3[0478]|4[02369]|5[05-79]|" . "6[02489])|" . "1(?:0[0-8]|1[089]|2[08]|3[0-24-8]|4[0-46-8]|5[1-369]|" . "6[1-39]|8[0-24-79]|9[02-57])|" . "2(?:40|5[1-9]|6[0-35-9]|7[0-9]|8[0-8]|9[0-4689])|" . "3(?:0[02-6]|1[0156]|2[12569]|3[4-6]|5[0578]|6[05]|" . "7[02369]|8[0-24-9]|9[1-35])|" . "4(?:0[2-9]|1[1459]|2[03-7]|3[069]|4[0-8]|5[013-5]|" . "7[01569]|8[0-9]|9[6-8])|" . "5(?:0[1-9]|1[0-9]|2[015]|3[1-36]|4[05]|5[01]|8[02-7]|" . "9[035])|" . "6(?:0[09]|1[056]|2[014]|5[07]|64|7[02]|9[0-2])|" . "7(?:0[09]|1[0-7]|22|3[05]|4[02]|5[01]|6[03-58]|7[0-35]|82|" . "90)|" . "8(?:0[02]|1[015]|2[06]|4[056])|" . "9(?:00|1[024-7]|25|3[05]|5[01]|60|8[0-2]|9[01]))" . ")", # # San Marino uses a slice of the postal codes for Italy. # Any postal code starting with 4789, followed by another # digit is from San Marino # # Data: http://download.geonames.org/export/zip/SM.zip # 'San Marino' => "(?k:4789[0-9])", Spain => "(?k:(?k:0[1-9]|[1-4][0-9]|5[0-2])(?k:[0-9])(?k:[0-9]{2}))", # Five digits, first two indicate the province. # Third digit: large town, main delivery rounds. # Last 2 digits: delivery area, secondary delivery route # or link to rural areas. # # Switzerland uses four digit postal codes; leading 0s are not used. # Not every combination is in use. Postal codes starting with 948 and # 949 are used by Liechtenstein, and will not be recognized by the # pattern below. # # Data from: http://download.geonames.org/export/zip/CH.zip # Switzerland => "(?k:1(?:0(?:0[0-9]|1[0-2457-9]|2[02-9]|3[0-9]|4[0-7]|5[2-589]|" . "6[1-368]|7[0-36-8]|8[0-58]|9[0-8])|" . "1(?:1[02-7]|2[1-8]|3[124-6]|4[1-9]|6[2-9]|7[02-6]|8[02-9]|" . "9[5-7])|" . "2(?:0[0-9]|1[1-9]|2[02-8]|3[1-4679]|4[0-8]|5[1-8]|6[0-9]|" . "7[0-9]|8[13-9]|9[0-9])|" . "3(?:0[02-8]|1[0-35-8]|2[0-69]|3[078]|4[1-8]|5[02-8]|" . "7[2-7])|" . "4(?:0[014-9]|1[0235-8]|2[0-9]|3[0-9]|4[0-356]|5[02-4]|" . "6[2-48]|7[03-5]|8[2-69])|" . "5(?:09|1[02-5]|2[1-9]|3[02-8]|4[1-5]|5[1-5]|6[2-8]|" . "8[02-9]|95)|" . "6(?:0[7-9]|1[0-9]|2[3-8]|3[0-8]|4[2-9]|5[1-46-9]|" . "6[0135-79]|7[03-9]|8[0-9]|9[0-24-79])|" . "7(?:0[0-2457-9]|1[2-9]|2[0-8]|3[0-8]|4[0-24-9]|5[2-467]|" . "6[23]|7[2-6]|8[2-9]|9[1-7])|" . "8(?:0[0-9]|1[14-8]|2[02-4]|3[23]|4[4-7]|5[2-46]|6[02-9]|" . "7[0-5]|8[0245]|9[0-35-9])|" . "9(?:0[2-8]|1[1-489]|2[0-35-9]|3[2-46-8]|4[1-8]|5[013578]|" . "6[1-9]|7[1-8]|8[1-8]|9[1-467]))" . "|2(?:0(?:0[0-46-9]|1[02-79]|2[2-578]|3[4-7]|4[236]|5[2-46-8]|" . "6[3578]|7[2-5]|8[78])|" . "1(?:0[358]|1[2-7]|2[3467]|49)|" . "20[6-8]|3(?:0[0-46]|1[468]|2[25]|3[368]|4[05]|5[034]|" . "6[02-4])|" . "4(?:0[056]|1[46])|" . "5(?:0[0-5]|1[02-8]|2[035]|3[2-8]|4[02-5]|5[2-8]|6[02-5]|" . "7[25-7])|" . "6(?:0[3-8]|1[02356])|" . "7(?:1[02-8]|2[023]|3[23568]|4[02-8]|62)|" . "8(?:0[0235-7]|1[2-4]|2[2-9]|3[02]|4[23]|5[2-7]|6[34]|73|" . "8[2-9])|" . "9(?:0[02-8]|1[24-6]|2[2-6]|3[235]|4[2-467]|5[02-4]))" . "|3(?:0(?:0[0-8]|1[0-57-9]|2[0479]|3[02-9]|4[0-9]|5[02-4]|" . "6[35-8]|7[0-8]|8[2-9]|9[5-9])|" . "1(?:1[0-6]|2[2-8]|32|4[4578]|5[02-9]|7[2-9]|8[2-6])|" . "2(?:0[2-8]|1[02-6]|2[56]|3[2-8]|5[0-7]|6[2-46-8]|7[0-4]|" . "8[02-6]|9[2-8])|" . "3(?:0[235-9]|1[2-57]|2[1-6]|6[0235-8]|7[2-7]|80)|" . "4(?:0[0-2]|1[2-9]|2[1-9]|3[2-9]|5[2-7]|6[2-5]|7[2-6])|" . "5(?:0[346-8]|1[023]|3[1-8]|43|5[0-35-7])|" . "6(?:0[0-57-9]|1[2-9]|2[2-9]|3[1-68]|4[5-7]|5[2-8]|6[1-5]|" . "7[1-4])|" . "7(?:0[02-7]|1[13-8]|2[2-5]|5[2-8]|6[2-6]|7[0-35-8]|8[0-5]|" . "92)|" . "8(?:0[013-7]|1[2-68]|2[2-6]|5[2-8]|6[02-4])|" . "9(?:0[0-8]|1[0-46-9]|2[02-9]|3[0-57-9]|4[02-9]|5[1-7]|" . "6[0135-8]|7[0-9]|8[2-9]|9[1-9]))" . "|4(?:0(?:0[0-57-9]|1[0-35-9]|2[03-5]|3[0-59]|4[0-2]|5[1-9]|65|" . "7[058]|8[0-9]|9[1-6])|" . "1(?:0[1-8]|1[24-8]|2[3-7]|3[23]|4[2-8]|53)|" . "2(?:0[2-46-8]|2[2-9]|3[2-4]|4[2-7]|5[2-4])|" . "3(?:0[2-5]|1[02-7]|2[2-5]|3[2-4])|" . "4(?:02|1[0-9]|2[1-6]|3[1-8]|4[1-8]|5[0-35-8]|6[0-9]|" . "9[2-7])|" . "5(?:0[0-39]|1[2-5]|2[2-58]|3[2-9]|4[23]|5[1-46-8]|6[2-6]|" . "7[1346-9]|8[1-8])|" . "6(?:0[0139]|1[1-8]|2[0-689]|3[02-4]|40|5[2-8]|6[35])|" . "7(?:0[2-4]|1[02-9])|" . "8(?:0[0-35-9]|1[2-4]|5[236])|" . "9(?:0[0-2]|1[1-79]|2[2-4]|3[2-8]|4[2-4]|5[02-5]))" . "|5(?:0(?:0[014]|1[02-578]|2[2-8]|3[2-7]|4[02-46]|5[346-8]|" . "6[2-4]|7[02-9]|8[02-5])|" . "1(?:0[235-8]|1[236])|" . "2(?:0[01]|1[023]|2[2-5]|3[2-7]|4[2-6]|7[2-7])|" . "3(?:0[013-6]|1[2-8]|2[2-6]|3[02-4])|" . "4(?:0[0-24-68]|1[235-7]|2[0356]|3[0-26]|4[2-5]|5[2-4]|" . "6[2-7])|" . "5(?:0[2-7]|12|2[245])|" . "6(?:0[013-8]|1[0-9]|2[0-8]|3[02467]|4[2-7])|" . "7(?:0[2-8]|12|2[2-8]|3[2-7]|4[256]))" . "|6(?:0(?:0[02-9]|1[0-9]|2[0-8]|3[0-9]|4[2-578]|5[2356]|" . "6[0-46-8]|7[2-48]|8[3-6])|" . "1(?:0[2356]|1[02-4]|2[2356]|3[023]|4[2-7]|5[2-46]|" . "6[0-367]|7[034]|82|9[267])|" . "2(?:0[3-8]|1[0-8]|2[12]|3[1-6]|4[2-8]|5[23]|6[02-5]|" . "7[4-7]|8[013-9]|9[45])|" . "3(?:0[0-4]|1[02-57-9]|3[0-3]|4[0-69]|5[346]|6[235]|7[0-7]|" . "8[236-8]|9[01])|" . "4(?:0[2-5]|1[04-8]|2[2-4]|3[0-468]|4[0-3]|5[24]|6[0-9]|" . "7[2-6]|8[2457]|9[013])|" . "5(?:0[0136]|1[1-8]|2[3-8]|3[2-578]|4[0-9]|5[6-8]|6[235]|" . "7[1-9]|8[2-4]|9[02-9])|" . "6(?:0[0-245]|1[1-468]|22|3[1-7]|4[4-8]|5[2-9]|6[1-4]|" . "7[02-8]|8[2-5]|9[02-6])|" . "7(?:0[2357]|1[03-9]|2[0-4]|4[2-9]|6[034]|7[2-7]|8[01])|" . "8(?:0[2-9]|1[04-8]|2[1-35-8]|3[02-9]|5[02-5]|6[2-7]|" . "7[2-57]|83)|" . "9(?:0[0-8]|1[1-9]|2[124-9]|3[02-9]|4[2-9]|5[0-9]|6[2-8]|" . "7[46-9]|8[0-46-9]|9[0-9]))" . "|7(?:0(?:0[0-467]|1[2-9]|2[36-9]|3[12]|5[06-8]|6[2-4]|7[4-8]|" . "8[2-4])|" . "1(?:0[4679]|1[0-6]|2[26-8]|3[02-8]|4[1-9]|5[1-9]|6[2-8]|" . "7[2-6]|8[02-9])|" . "2(?:0[1-68]|1[2-5]|2[02-468]|3[1-35]|4[0-79]|5[02]|6[05]|" . "7[026-8])|" . "3(?:0[2-467]|1[02-57]|2[03-6])|" . "4(?:0[2-578]|1[1-9]|2[1-8]|3[0-8]|4[02-8]|5[0-9]|6[02-4]|" . "7[237]|8[24]|9[2-4])|" . "5(?:0[02-5]|1[2-7]|2[2-7]|3[02-7]|4[2356]|5[0-46-9]|" . "6[023])|" . "6(?:0[2-68]|10)|" . "7(?:10|4[1-8]))" . "|8(?:0(?:0[0-68]|1[0-256]|2[0-467]|3[0-46-9]|4[0-24-9]|" . "5[0-357-9]|6[013-68]|7[0145]|8[015-8]|9[0-3689])|" . "1(?:0[2-9]|1[2-578]|2[1-7]|3[02-6]|4[23]|5[2-8]|6[24-6]|" . "7[2-5]|8[0-57]|9[2-7])|" . "2(?:0[0-578]|1[02-9]|2[2-68]|3[1-689]|4[0-35-8]|5[2-59]|" . "6[0-9]|7[2-4]|8[05])|" . "3(?:0[1-9]|1[0-2457]|2[025]|3[0-25]|4[02-5]|5[2-7]|6[023]|" . "7[0-246])|" . "4(?:0[0-24-689]|1[0-68]|2[1-8]|4[247]|5[0-57-9]|6[0-8]|" . "7[124-9]|8[2-46-9]|9[2-9])|" . "5(?:0[0-35-8]|1[024]|2[02-6]|3[025-7]|4[02-8]|5[2-68]|" . "6[014-6]|7[02-7]|8[0-9]|9[02-9])|" . "6(?:0[02-8]|1[02-8]|2[0-7]|3[02-9]|4[056])|" . "7(?:0[02-46-8]|1[2-8]|2[235-7]|3[02-57-9]|40|5[0-9]|" . "6[25-7]|7[2-57]|8[2-4])|" . "8(?:0[0-8]|1[02356]|2[045]|3[2-6]|4[0-79]|5[2-8]|6[2-8]|" . "7[2-47-9]|8[0-9]|9[02-8])|" . "9(?:0[1-9]|1[0-9]|2[56]|3[2-4]|42|5[1-7]|6[24-7]|70))" . "|9(?:0(?:0[0146-9]|1[0-6]|2[02-9]|3[02-8]|4[2-4]|5[02-8]|" . "6[2-4])|" . "1(?:0[0-578]|1[2-6]|2[235-7])|" . "2(?:0[013-5]|1[2-7]|2[035]|3[01]|4[02-9])|" . "3(?:0[014-68]|1[2-5]|2[0235-7])|" . "4(?:0[0-5]|1[0134]|2[2-8]|3[04-7]|4[2-5]|5[0-3]|6[2-9]|" . "7[0-35-9])|" . "5(?:0[0-46-8]|1[02457]|2[3-7]|3[2-6]|4[235-8]|5[2-6]|" . "6[25]|73)|" . "6(?:0[1246-8]|1[2-5]|2[0-2]|3[013]|4[23]|5[0-25-8]))" . ")", # # Vatican City uses a single postal code, taken from the Italian # system for postal codes; and this code is shared with parts of Rome. # # Data from: http://download.geonames.org/export/zip/CH.zip # 'Vatican City' => "(?k:00120)", ); my %alternatives = ( Australia => [qw /Australian/], France => [qw /French/], Germany => [qw /German/], ); while (my ($country, $zip) = each %zip) { my @names = ($country); push @names => @{$alternatives {$country}} if $alternatives {$country}; foreach my $name (@names) { my $pat_name = $name eq "Denmark" && $] < 5.00503 ? [zip => $name, qw /-country=/] : [zip => $name, qw /-prefix= -country=/]; pattern name => $pat_name, create => sub { my $pt = _t $_ [1] {-prefix}; my $cn = _c $country => $_ [1] {-country}; my $pfx = "(?:(?k:$cn)-)"; "(?k:$pfx$pt$zip)"; }, ; } } # Postal codes of the form 'DDDD LL', with F, I, O, Q, U and Y not # used, SA, SD and SS unused combinations, and the first digit # cannot be 0. No specific meaning to the letters or digits. foreach my $country (qw /Netherlands Dutch/) { pattern name => ['zip', $country => qw /-prefix= -country=/, "-sep= "], create => sub { my $pt = _t $_ [1] {-prefix}; # Unused letters: F, I, O, Q, U, Y. # Unused combinations: SA, SD, SS. my $num = '[1-9][0-9]{3}'; my $let = '[A-EGHJ-NPRTVWXZ][A-EGHJ-NPRSTVWXZ]|' . 'S[BCEGHJ-NPRTVWXZ]'; my $sep = __ $_ [1] {-sep}; my $cn = _c Netherlands => $_ [1] {-country}; my $pfx = "(?:(?k:$cn)-)"; "(?k:$pfx$pt(?k:(?k:$num)(?k:$sep)(?k:$let)))"; }, ; } # Postal codes of the form 'DDDDD' or 'DDDDD-DDDD'. All digits are used, # none carry any specific meaning. pattern name => [qw /zip US -prefix= -country= -extended= -sep=-/], create => sub { my $pt = _t $_ [1] {-prefix}; my $et = _t $_ [1] {-extended}; my $sep = __ $_ [1] {-sep}; my $cn = _c USA => $_ [1] {-country}; my $pfx = "(?:(?k:$cn)-)"; # my $zip = "(?k:[0-9]{5})"; # my $ext = "(?:(?k:$sep)(?k:[0-9]{4}))"; my $zip = "(?k:(?k:[0-9]{3})(?k:[0-9]{2}))"; my $ext = "(?:(?k:$sep)(?k:(?k:[0-9]{2})(?k:[0-9]{2})))"; "(?k:$pfx$pt(?k:$zip$ext$et))"; }, ; # # Postal codes are four digits, but not all combinations are used. # # Valid codes from: # https://postcode.auspost.com.au/free_display.html?id=1 # pattern name => ['zip', 'Australia' => qw /-prefix= -country= -lax=/], create => sub { my $pt = _t $_ [1] {-prefix}; my $cn = _c Australia => $_ [1] {-country}; my $pfx = "(?:(?k:$cn)-)"; my $lax = !defined $_ [1] {-lax} || $_ [1] {-lax}; my $l0 = $lax ? "0?" : "0"; # Leading zero my $pat = "(?|" . "(?|1(?:2(?:15|2[05]|3[05]|40)|" . "3(?:00|35|40|5[05]|60)|" . "4(?:35|45|5[05]|6[056]|7[05]|8[015]|9[059])|" . "5(?:15|6[05]|70|85|9[05])|" . "6(?:3[05]|40|55|60|7[05]|8[05])|" . "7(?:0[01]|1[05]|30|5[05]|65|90)|" . "8(?:0[05]|11|25|35|51|60|7[15]|85|90))" . "|2(?:0(?:0[0-246-9]|1[0-25-9]|[2-4][0-9]|5[0279]|" . "6[0-9]|7[0-79]|8[0-9]|9[02-79])|" . "1(?:[0-2][0-9]|3[0-8]|4[0-8]|5[0-9]|6[0-8]|" . "7[0-9]|9[0-9])|" . "2(?:0[03-9]|1[0-46-9]|2[0-9]|3[0-4]|5[016-9]|" . "6[0-57]|78|8[0-79]|9[0-9])|" . "3(?:0[02-9]|1[0-24-9]|2[0-9]|3[03-9]|4[0-8]|" . "5[0-9]|6[0159]|7[0-29]|8[0-26-8]|9[05-9])|" . "4(?:0[0-689]|1[015]|2[0-9]|3[019]|4[013-9]|" . "5[02-6]|6[02-69]|[78][0-9]|90)|" . "5(?:0[02568]|1[5-9]|2[025-9]|3[03-9]|4[015689]|" . "5[015-9]|6[03-9]|7[0-9]|8[0-8]|9[04])|" . "6(?:0[0-9]|1[0-24-9]|2[0-9]|3[0-3]|4[0-9]|" . "5[0-35689]|6[0135689]|7[1258]|8[01])|" . "7(?:0[0-35-8]|1[0-7]|2[0-25-79]|3[0-9]|4[57-9]|" . "5[0-46-9]|6[0-35-9]|7[03-9]|8[02-7]|9[0-57-9])|" . "8(?:0[03-9]|1[078]|2[0-9]|3[0-689]|4[02-9]|5[02]|" . "6[4-9]|7[013-9]|80|9[089])|" . "9(?:0[0-6]|1[1-4]))" . "|3(?:0(?:0[0-468]|1[0-35689]|2[0-9]|3[0-46-9]|[45][0-9]|" . "6[0-8]|7[0-689]|8[1-57-9]|9[013-79])|" . "1(?:0[1-9]|1[13-6]|2[1-9]|[34][0-9]|5[0-689]|" . "[6-9][0-9])|" . "2(?:0[0-24-7]|1[1-9]|2[0-8]|3[0-9]|4[0-39]|5[014]|" . "6[04-9]|7[0-9]|8[0-79]|9[2-4])|" . "3(?:0[0-59]|1[0-2457-9]|2[1-589]|3[0-578]|4[0-25]|" . "5[0-7]|6[0134]|7[013-57-9]|8[014578]|9[0-356])|" . "4(?:0[0-279]|1[2-589]|2[0347-9]|3[0-578]|4[0-246-8]|" . "5[0138]|6[0-57-9]|7[2578]|8[02357-9]|9[01468])|" . "5(?:0[0-25-79]|1[25-8]|2[0-3579]|3[0137]|4[02469]|" . "5[0-24-9]|6[1-8]|7[0-3569]|8[013-689]|9[014-79])|" . "6(?:0[78]|1[0246-9]|2[0-49]|3[0-9]|4[0134679]|" . "5[89]|6[0-69]|7[0-35-8]|8[2357-9]|9[01457-9])|" . "7(?:0[01457-9]|1[1-57-9]|2[02-8]|3[0235-9]|4[014679]|" . "5[0-9]|6[0-7]|7[057-9]|8[1-35-9]|9[1-35-79])|" . "8(?:0[02-9]|1[02-68]|2[0-5]|3[1-35]|4[0-247]|" . "5[0-46-9]|6[02459]|7[013-58]|8[025-9]|9[0-3568])|" . "9(?:0[02-49]|1[0-35689]|2[0-35-9]|3[01346-9]|4[0-6]|" . "5[01346-9]|6[024-7]|7[15-9]|8[01478]|9[0-256]))" . "|4(?:0(?:0[0-9]|1[0-47-9]|2[0-259]|3[0-24-7]|5[13-59]|" . "6[014-9]|7[02-8])|" . "1(?:0[1-9]|1[0-9]|2[0-57-9]|3[0-3]|5[1-9]|6[013-59]|" . "7[0-489]|8[34])|" . "2(?:0[57-9]|[12][0-9]|30|7[0-25]|8[057])|" . "3(?:0[013-79]|1[0-3]|4[0-7]|5[02-9]|6[0-5]|7[0-8]|" . "8[0-578]|90)|" . "4(?:0[0-8]|1[0-35-9]|2[0-8]|5[45]|6[12578]|" . "7[0-2457-9]|8[0-26-9]|9[0-46-8])|" . "5(?:0[0-9]|1[0-24-9]|2[01]|[56][0-9]|7[0-5]|8[01])|" . "6(?:0[01568]|1[0-5]|2[015-7]|30|5[059]|6[02]|" . "7[01346-8]|80|9[4579])|" . "7(?:0[0-79]|1[0-9]|2[0-8]|3[0-35-9]|4[0-6]|5[013467]|" . "9[89])|" . "8(?:0[02-9]|1[0-9]|2[0-589]|30|49|5[024-9]|" . "6[01589]|7[0-9]|8[0-8]|9[0-25]))" . "|5(?:0(?:0[016-9]|1[0-9]|2[0-5]|3[1-57-9]|4[0-9]|5[0-2]|" . "6[1-9]|7[0-6]|8[1-9]|9[0-8])|" . "1(?:0[6-9]|1[0-8]|2[015-7]|3[1-46-9]|4[0-24]|" . "[56][0-9]|7[0-4])|" . "2(?:0[1-4]|1[0-4]|2[0-3]|3[1-8]|4[0-5]|5[0-69]|" . "6[0-9]|7[0-35-9]|80|9[01])|" . "3(?:0[1-46-9]|1[01]|2[0-2]|3[0-3]|4[0-6]|5[0-7]|" . "60|7[1-4]|81)|" . "4(?:0[01]|1[0-9]|2[0-2]|3[1-4]|40|5[1-5]|6[0-24]|" . "7[0-3]|8[0-35]|9[0135])|" . "5(?:0[12]|10|2[0-3]|40|5[024-68]|60|7[0-35-7]|" . "8[0-3])|" . "6(?:0[0-9]|3[0-3]|4[0-2]|5[0-5]|6[01]|7[01]|80|90)|" . "7(?:0[01]|1[09]|2[02-5]|3[0-4])|" . "9(?:42|50))" . "|6(?:0(?:0[013-9]|1[0-24-9]|2[0-9]|3[0-8]|4[1-4]|" . "[56][0-9]|7[0-46-9]|8[1-4]|90)|" . "1(?:0[0-9]|1[0-2]|2[1-6]|4[7-9]|[56][0-9]|" . "7[0-6]|8[0-2])|" . "2(?:0[7-9]|1[013-58]|2[013-9]|3[0-36769]|4[034]|" . "5[1-68]|6[02]|7[15]|8[0-24-68]|90)|" . "3(?:0[24689]|1[1-35-8]|2[0-46-8]|3[0-35-8]|4[1368]|" . "5[0-35-9]|6[1357-9]|7[0235]|8[3-6]|9[0-8])|" . "4(?:0[13579]|1[0-589]|2[0-9]|3[0-46-8]|4[0235-8]|" . "5[02]|6[0-35-8]|7[0235-79]|8[0457-9]|90)|" . "5(?:0[1-79]|1[0-9]|2[1258]|3[0-25-7]|5[68]|" . "6[0246-9]|7[1245])|" . "6(?:0[35689]|1[2-46]|2[03578]|3[0-2589]|4[026])|" . "7(?:0[157]|1[0-468]|2[0-2568]|3[13]|4[03]|5[1348]|" . "6[025]|70|9[89])|" . "8(?:3[17-9]|4[0-9]|50|65|72|92)|" . "9(?:0[1-79]|1[0-9]|2[0-69]|3[1-69]|4[1-7]|5[1-9]|" . "6[013-9]|7[09]|8[1-9]|9[0-27]))" . "|7(?:0(?:0[0-24-9]|1[0-25-9]|2[0-7]|30|5[0-5])|" . "1(?:09|1[23679]|20|39|40|5[015]|6[23]|7[0-9]|" . "8[02-7]|90)|" . "2(?:09|1[0-6]|4[89]|5[02-9]|6[0-578]|7[05-7]|9[0-2])|" . "3(?:0[0-7]|1[056]|2[0-25]|3[01])|" . "4(?:6[6-9]|70))" . "|8(?:0(?:0[1-9]|1[0-2]))" . "|9726" . # # Place this last, in case the leading 0 is optional; if # not, matching against "2001" would find "200". # "|$l0(?:200|8(?:0[014]|1[0-5]|2[0-289]|3[0-24-9]|4[05-7]|" . "5[0-4]|6[0-2]|7[0-5]|8[0156])|909)" . "))"; "(?k:$pfx$pt(?k:$pat))"; } ; # pattern name => [qw /zip British/, "-sep= "], # create => sub { # my $sep = $_ [1] -> {-sep}; # # my $london = '(?:EC[1-4]|WC[12]|S?W1)[A-Z]'; # my $single = '[BGLMS][0-9]{1,2}'; # my $double = '[A-Z]{2}[0-9]{1,2}'; # # my $left = "(?:$london|$single|$double)"; # my $right = '[0-9][ABD-HJLNP-UW-Z]{2}'; # # "(?k:(?k:$left)(?k:$sep)(?k:$right))"; # }, # ; # # pattern name => [qw /zip Canadian/, "-sep= "], # create => sub { # my $sep = $_ [1] -> {-sep}; # # my $left = '[A-Z][0-9][A-Z]'; # my $right = '[0-9][A-Z][0-9]'; # # "(?k:(?k:$left)(?k:$sep)(?k:$right))"; # }, # ; 1; __END__ =pod =head1 NAME Regexp::Common::zip -- provide regexes for postal codes. =head1 SYNOPSIS use Regexp::Common qw /zip/; while (<>) { /^$RE{zip}{Netherlands}$/ and print "Dutch postal code\n"; } =head1 DESCRIPTION Please consult the manual of L<Regexp::Common> for a general description of the works of this interface. Do not use this module directly, but load it via I<Regexp::Common>. This module offers patterns for zip or postal codes of many different countries. They all have the form C<$RE{zip}{Country}[{options}]>. The following common options are used: =head2 C<{-prefix=[yes|no|allow]}> and C<{-country=PAT}>. Postal codes can be prefixed with a country abbreviation. That is, a Dutch postal code of B<1234 AB> can also be written as B<NL-1234 AB>. By default, all the patterns will allow the prefixes. But this can be changed with the C<-prefix> option. With C<-prefix=yes>, the returned pattern requires a country prefix, while C<-prefix=no> disallows a prefix. Any argument that doesn't start with a C<y> or a C<n> allows a country prefix, but doesn't require them. The prefixes used are, unfortunately, not always the same. Officially, ISO country codes need to be used, but the usage of I<CEPT> codes (the same ones as used on cars) is common too. By default, each postal code will recognize a country prefix that's either the ISO standard or the CEPT code. That is, German postal codes may prefixed with either C<DE> or C<D>. The recognized prefix can be changed with the C<-country> option, which takes a (sub)pattern as argument. The arguments C<iso> and C<cept> are special, and indicate the language prefix should be the ISO country code, or the CEPT code. Examples: /$RE{zip}{Netherlands}/; # Matches '1234 AB' and 'NL-1234 AB'. /$RE{zip}{Netherlands}{-prefix => 'no'}/; # Matches '1234 AB' but not 'NL-1234 AB'. /$RE{zip}{Netherlands}{-prefix => 'yes'}/; # Matches 'NL-1234 AB' but not '1234 AB'. /$RE{zip}{Germany}/; # Matches 'DE-12345' and 'D-12345'. /$RE{zip}{Germany}{-country => 'iso'}/; # Matches 'DE-12345' but not 'D-12345'. /$RE{zip}{Germany}{-country => 'cept'}/; # Matches 'D-12345' but not 'DE-12345'. /$RE{zip}{Germany}{-country => 'GER'}/; # Matches 'GER-12345'. =head2 C<{-sep=PAT}> Some countries have postal codes that consist of two parts. Typically there is an official way of separating those parts; but in practise people tend to use different separators. For instance, if the official way to separate parts is to use a space, it happens that the space is left off. The C<-sep> option can be given a pattern as argument which indicates what to use as a separator between the parts. Examples: /$RE{zip}{Netherlands}/; # Matches '1234 AB' but not '1234AB'. /$RE{zip}{Netherlands}{-sep => '\s*'}/; # Matches '1234 AB' and '1234AB'. =head2 C<$RE{zip}{Australia}{-lax}> Returns a pattern that recognizes Australian postal codes. Australian postal codes consist of four digits; the first two digits, which range from '10' to '97', indicate the state, although there are exceptions. Territories use '02' or '08' as starting digits. '0909' is the only postal code starting with '09' - this is the postal code for the Northern Territory University). The (optional) country prefixes are I<AU> (ISO country code) and I<AUS> (CEPT code). It the past, it was claimed that for postal codes starting with a 0, the leading 0 may be omitted, and up to (and including) version 2016060201, the leading 0 was optional. But there doesn't seem be solid evidence the leading 0 is optional. So, we now require there always to be four digit -- unless the C<< {-lax} >> option is given, then a possibly leading 0 is optional. Regexp::Common 2.107 and before used C<$RE{zip}{Australian}>. This is still supported. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back As of version 2016060201, no C<< $4 >> or C<< $5 >> will be set. =head2 C<< $RE {zip} {Austria} >> Returns a pattern which recognizes Austrian postal codes. Austrian postal codes consists of 4 digits, but not all possibilities are used. This pattern matches the postal codes in use. The (optional) country prefixes are I<AT> (ISO country code) and I<AUT> (CEPT code). If C<< {-keep} >> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country code prefix. =back =head2 C<$RE{zip}{Belgium}> Returns a pattern than recognizes Belgian postal codes. Belgian postal codes consist of 4 digits, of which the first indicates the province. The (optional) country prefixes are I<BE> (ISO country code) and I<B> (CEPT code). If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back =head2 C<$RE{zip}{Denmark}> Returns a pattern that recognizes Danish postal codes. Danish postal codes consist of four numbers; the first digit indicates the distribution region, the second the distribution district. The (optional) country prefix is I<DK>, which is both the ISO country code and the CEPT code. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back Danish postal codes will not start with 39. Postal codes of the form 39XX are reserved from Greenland; the pattern for Danish postal codes will not recognize them. =head2 C<$RE{zip}{France}> Returns a pattern that recognizes French postal codes. French postal codes consist of five numbers; the first two numbers, which range from '01' to '98', indicate the department. The (optional) country prefixes are I<FR> (ISO country code) and I<F> (CEPT code). Regexp::Common 2.107 and before used C<$RE{zip}{French}>. This is still supported. Monaco uses postal codes which are part of the numbering system used by the French postal code system; their numbers start with 980. These numbers are C<< not >> recognized by this pattern. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back =head2 C<$RE{zip}{Germany}> Returns a pattern that recognizes German postal codes. German postal codes consist of five numbers; the first two numbers indicating a wider postal area, the last three digits a postal district. The (optional) country prefixes are I<DE> (ISO country code) and I<D> (CEPT code). Regexp::Common 2.107 and before used C<$RE{zip}{German}>. This is still supported. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back =head2 C<$RE{zip}{Greenland}> Returns a pattern that recognizes postal codes from Greenland. Greenland, uses the Danish postal codes system. Postal codes starting with 39 are reserved for Greenland, and all Greenlandic postal codes start with 39. Except the postal code for Santa. He uses 2412. The (optional) country prefix is I<GL>, which is use both as the ISO country code and the CEPT code. Earlier versions used I<DK> as the prefix. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back =head2 C<$RE{zip}{Italy}> Returns a pattern recognizing Italian postal codes. Italian postal codes consist of 5 digits. The first digit indicates the region, the second the province. The third digit is odd for province capitals, and even for the province itself. The fourth digit indicates the route, and the fifth a place on the route (0 for small places, alphabetically for the rest). Codes starting with 4789 are postal codes for San Marino; they are not recognized by the pattern. Use C<< $RE {zip} {'San Marino'} >> instead. The country prefix is either I<IT> (the ISO country code), or I<I> (the CEPT code). If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back =head2 C<< $RE {zip} {Liechtenstein} >> Returns a pattern which recognizes postal codes used in Liechtenstein. Liechtenstein uses postal codes from the Swiss postal code system. This system uses four digits. Postal codes which start with 94, and use 8 or 9 as a third digit are postal codes for Liechtenstein. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back The ISO country prefix is I<< LI >>, the CEPT country prefix is I<< LIE >>. =head2 C<< $RE {zip {Monaco} >> Returns a pattern for postal codes used in Monaco. Monaco uses a range from the system used in France. They are 5 digits, starting with I<< 980 >>. The number I<< 98000 >> is used for physical addresses. Numbers ending in C<< 01 >> to C<< 99 >> are used for special deliveries. The ISO country code is I<< MC >>. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back =head2 C<$RE{zip}{Netherlands}> Returns a pattern that recognizes Dutch postal codes. Dutch postal codes consist of 4 digits and 2 letters, separated by a space. The separator can be changed using the C<{-sep}> option, as discussed above. The (optional) country prefix is I<NL>, which is both the ISO country code and the CEPT code. Regexp::Common 2.107 and earlier used C<$RE{zip}{Dutch}>. This is still supported. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =item $4 The digits part of the postal code. =item $5 The separator between the digits and the letters. =item $6 The letters part of the postal code. =back =head2 C<< $RE{zip}{Norway} >> Returns a pattern that recognizes Norwegian postal codes. Norwegian postal codes consist of four digits. The country prefix is either I<NO> (the ISO country code), or I<N> (the CEPT code). If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back =head2 C<< $RE {zip} {'San Marino'} >> Postal codes of San Marino use a slice from the Italian postal codes. Any code starting 4789, followed by another digit belongs to San Marino. The country prefix for San Marino is I<< SM >>. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back =head2 C<< $RE{zip}{Spain} >> Returns a pattern that recognizes Spanish postal codes. Spanish postal codes consist of 5 digits. The first 2 indicate one of Spain's fifties provinces (in alphabetical order), starting with C<00>. The third digit indicates a main city or the main delivery rounds. The last two digits are the delivery area, secondary delivery route or a link to rural areas. The country prefix is either I<ES> (the ISO country code), or I<E> (the CEPT code). If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =item $4 The two digits indicating the province. =item $5 The digit indicating the main city or main delivery route. =item $6 The digits indicating the delivery area, secondary delivery route or a link to rural areas. =back =head2 C<< $RE {zip} {Switzerland} >> Returns a pattern that recognizes Swiss postal codes. Swiss postal codes consist of 4 digits, but not all combinations are used. Postal codes starting with 948 and 949 are for location in Liechtenstein, and will not be recognized by the pattern for Swiss postal codes. Use C<< $RE {zip} {Liechtenstein} >> for those. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back The country prefix is I<CH>, for both the ISO and CEPT prefixes. =head2 C<< $RE{zip}{US}{-extended => [yes|no|allow]} >> Returns a pattern that recognizes US zip codes. US zip codes consist of 5 digits, with an optional 4 digit extension. By default, extensions are allowed, but not required. This can be influenced by the C<-extended> option. If its argument starts with a C<y>, extensions are required; if the argument starts with a C<n>, extensions will not be recognized. If an extension is used, a dash is used to separate the main part from the extension, but this can be changed with the C<-sep> option. The country prefix is either I<US> (the ISO country code), or I<USA> (the CEPT code). If C<{-keep}> is being used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =item $4 The first 5 digits of the postal code. =item $5 The first three digits of the postal code, indicating a sectional center or a large city. New in Regexp::Common 2.119. =item $6 The last 2 digits of the 5 digit part of the postal code, indicating a post office facility or delivery area. New in Regexp::Common 2.119. =item $7 The separator between the 5 digit part and the 4 digit part. Up to Regexp::Common 2.118, this used to be $5. =item $8 The 4 digit part of the postal code (if any). Up to Regexp::Common 2.118, this used to be $6. =item $9 The first two digits of the 4 digit part of the postal code, indicating a sector, or several blocks. New in Regexp::Common 2.119. =item $10 The last two digits of the 4 digit part of the postal code, indicating a segment or one side of a street. New in Regexp::Common 2.119. =back =head3 Questions =over 4 =item Can the 5 digit part of the zip code (in theory) start with 000? =item Can the 5 digit part of the zip code (in theory) end with 00? =item Can the 4 digit part of the zip code (in theory) start with 00? =item Can the 4 digit part of the zip code (in theory) end with 00? =back =head2 C<< $RE {zip} {'Vatican City'} >> Vatican City uses a single postal code; taken from the Italian system of postal codes, and sharing the single code with a part of Rome. If C<{-keep}> is used, the following variables will be set: =over 4 =item $1 The entire postal code. =item $2 The country code prefix. =item $3 The postal code without the country prefix. =back The country prefix for Vatican City is C<< VA >>. =head1 SEE ALSO L<Regexp::Common> for a general description of how to use this interface. =over 4 =item L<http://www.columbia.edu/kermit/postal.html> Frank's compulsive guide to postal addresses. =item L<http://www.upu.int/post_code/en/addressing_formats_guide.shtml> Postal addressing systems. =item L<http://www.uni-koeln.de/~arcd2/33e.htm> Postal code information. =item L<http://www.grcdi.nl/linkspc.htm> Links to Postcode Pages. =item L<https://postcode.auspost.com.au/free_display.html?id=1> All Australian postal codes in use. =item L<http://hdusps.esecurecare.net/cgi-bin/hdusps.cfg/php/enduser/std_adp.php?p_faqid=1014> Information about US postal codes. =item L<http://en.wikipedia.org/wiki/Postal_code> =item L<http://download.geonames.org/export/zip/> Lots of zip files with active postal codes. =item L<http://postal-codes.findthedata.com/> Find postal codes. =back =head1 AUTHORS Damian Conway S<(I<damian@conway.org>)> and Abigail S<(I<regexp-common@abigail.be>)>. =head1 MAINTENANCE This package is maintained by Abigail S<(I<regexp-common@abigail.be>)>. =head1 BUGS AND IRRITATIONS Zip codes for most countries are missing. Send them in to I<regexp-common@abigail.be>. =head1 LICENSE and COPYRIGHT This software is Copyright (c) 2001 - 2017, Damian Conway and Abigail. This module is free software, and maybe used under any of the following licenses: 1) The Perl Artistic License. See the file COPYRIGHT.AL. 2) The Perl Artistic License 2.0. See the file COPYRIGHT.AL2. 3) The BSD License. See the file COPYRIGHT.BSD. 4) The MIT License. See the file COPYRIGHT.MIT. =cut