From d25c99295a32b8efea1755d78099587dd52f1e23 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Sat, 23 Mar 2019 13:01:45 -0700 Subject: [PATCH] v8.10.8 --- csharp/PhoneNumbers/LeniencyExtensions.cs | 9 +- csharp/PhoneNumbers/PhoneNumberMatcher.cs | 76 +- csharp/PhoneNumbers/PhoneNumberUtil.cs | 11 +- resources/PhoneNumberAlternateFormats.xml | 2323 +++++++++++++++------ resources/PhoneNumberMetaData.xml | 1269 +++++------ resources/ShortNumberMetadata.xml | 542 ++--- resources/carrier/en/1.txt | 54 + resources/carrier/en/380.txt | 1 - resources/carrier/en/65.txt | 20 +- resources/carrier/en/996.txt | 2 + resources/carrier/uk/380.txt | 1 - 11 files changed, 2720 insertions(+), 1588 deletions(-) diff --git a/csharp/PhoneNumbers/LeniencyExtensions.cs b/csharp/PhoneNumbers/LeniencyExtensions.cs index a6ebdf3d0..2494c1657 100644 --- a/csharp/PhoneNumbers/LeniencyExtensions.cs +++ b/csharp/PhoneNumbers/LeniencyExtensions.cs @@ -4,7 +4,12 @@ namespace PhoneNumbers { public static class LeniencyExtensions { - public static bool Verify(this Leniency leniency, PhoneNumber number, string candidate, PhoneNumberUtil util)=> - util.Verify(leniency, number, candidate, util); + public static bool Verify( + this Leniency leniency, + PhoneNumber number, + string candidate, + PhoneNumberUtil util, + PhoneNumberMatcher matcher)=> + util.Verify(leniency, number, candidate, util, matcher); } } \ No newline at end of file diff --git a/csharp/PhoneNumbers/PhoneNumberMatcher.cs b/csharp/PhoneNumbers/PhoneNumberMatcher.cs index f709dcf1f..38a99110a 100644 --- a/csharp/PhoneNumbers/PhoneNumberMatcher.cs +++ b/csharp/PhoneNumbers/PhoneNumberMatcher.cs @@ -165,6 +165,12 @@ private static string Limit(int lower, int upper) /** The next index to start searching at. Undefined in {@link State#DONE}. */ private int searchIndex; + // A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3 + // countries being used for the same doc with ~10 patterns for each country. Some pages will have + // a lot more countries in use, but typically fewer numbers for each so expanding the cache for + // that use-case won't have a lot of benefit. + private readonly RegexCache regexCache = new RegexCache(32); + /** * Creates a new instance. See the factory methods in {@link PhoneNumberUtil} on how to obtain a * new instance. @@ -421,7 +427,7 @@ private PhoneNumberMatch ParseAndVerify(string candidate, int offset) } var number = phoneUtil.ParseAndKeepRawInput(candidate, preferredRegion); - if (leniency.Verify(number, candidate, phoneUtil)) + if (leniency.Verify(number, candidate, phoneUtil, this)) { // We used parseAndKeepRawInput to create this number, but for now we don't return the extra // values parsed. TODO: stop clearing all values here and switch all users over @@ -451,17 +457,17 @@ private PhoneNumberMatch ParseAndVerify(string candidate, int offset) * formatted this number */ public delegate bool CheckGroups(PhoneNumberUtil util, PhoneNumber number, - StringBuilder normalizedCandidate, string[] expectedNumberGroups); + StringBuilder normalizedCandidate, IList expectedNumberGroups); public static bool AllNumberGroupsRemainGrouped(PhoneNumberUtil util, PhoneNumber number, StringBuilder normalizedCandidate, - string[] formattedNumberGroups) + IList formattedNumberGroups) { var fromIndex = 0; // Check each group of consecutive digits are not broken into separate groupings in the // {@code normalizedCandidate} string. - for (var i = 0; i < formattedNumberGroups.Length; i++) + for (var i = 0; i < formattedNumberGroups.Count; i++) { // Fails if the substring of {@code normalizedCandidate} starting from {@code fromIndex} // doesn't contain the consecutive digits in formattedNumberGroups[i]. @@ -495,7 +501,7 @@ public static bool AllNumberGroupsRemainGrouped(PhoneNumberUtil util, public static bool AllNumberGroupsAreExactlyPresent(PhoneNumberUtil util, PhoneNumber number, StringBuilder normalizedCandidate, - string[] formattedNumberGroups) + IList formattedNumberGroups) { var candidateGroups = PhoneNumberUtil.NonDigitsPattern.Split(normalizedCandidate.ToString()); @@ -513,7 +519,7 @@ public static bool AllNumberGroupsAreExactlyPresent(PhoneNumberUtil util, } // Starting from the end, go through in reverse, excluding the first group, and check the // candidate and number groups are the same. - for (var formattedNumberGroupIndex = (formattedNumberGroups.Length - 1); + for (var formattedNumberGroupIndex = (formattedNumberGroups.Count - 1); formattedNumberGroupIndex > 0 && candidateNumberGroupIndex >= 0; formattedNumberGroupIndex--, candidateNumberGroupIndex--) { @@ -531,51 +537,67 @@ public static bool AllNumberGroupsAreExactlyPresent(PhoneNumberUtil util, /** * Helper method to get the national-number part of a number, formatted without any national - * prefix, and return it as a set of digit blocks that would be formatted together. + * prefix, and return it as a set of digit blocks that would be formatted together following + * standard formatting rules. */ - private static string[] GetNationalNumberGroups(PhoneNumberUtil util, PhoneNumber number, + private static IList GetNationalNumberGroups(PhoneNumberUtil util, PhoneNumber number) { + // This will be in the format +CC-DG1-DG2-DGX;ext=EXT where DG1..DGX represents groups of + // digits. + var rfc3966Format = util.Format(number, PhoneNumberFormat.RFC3966); + // We remove the extension part from the formatted string before splitting it into different + // groups. + var endIndex = rfc3966Format.IndexOf(';'); + if (endIndex < 0) { + endIndex = rfc3966Format.Length; + } + // The country-code will have a '-' following it. + var startIndex = rfc3966Format.IndexOf('-') + 1; + return rfc3966Format.Substring(startIndex, endIndex - startIndex).Split('-'); + } + + /** + * Helper method to get the national-number part of a number, formatted without any national + * prefix, and return it as a set of digit blocks that should be formatted together according to + * the formatting pattern passed in. + */ + private static IList GetNationalNumberGroups(PhoneNumberUtil util, PhoneNumber number, NumberFormat formattingPattern) { - if (formattingPattern == null) - { - // This will be in the format +CC-DG;ext=EXT where DG represents groups of digits. - var rfc3966Format = util.Format(number, PhoneNumberFormat.RFC3966); - // We remove the extension part from the formatted string before splitting it into different - // groups. - var endIndex = rfc3966Format.IndexOf(';'); - if (endIndex < 0) - { - endIndex = rfc3966Format.Length; - } - // The country-code will have a '-' following it. - var startIndex = rfc3966Format.IndexOf('-') + 1; - return rfc3966Format.Substring(startIndex, endIndex - startIndex).Split('-'); - } - // We format the NSN only, and split that according to the separator. + // If a format is provided, we format the NSN only, and split that according to the separator. var nationalSignificantNumber = util.GetNationalSignificantNumber(number); return util.FormatNsnUsingPattern(nationalSignificantNumber, formattingPattern, PhoneNumberFormat.RFC3966).Split('-'); } - public static bool CheckNumberGroupingIsValid( + public bool CheckNumberGroupingIsValid( PhoneNumber number, string candidate, PhoneNumberUtil util, CheckGroups checker) { // TODO: Evaluate how this works for other locales (testing has been limited to NANPA regions) // and optimise if necessary. var normalizedCandidate = PhoneNumberUtil.NormalizeDigits(candidate, true /* keep non-digits */); - var formattedNumberGroups = GetNationalNumberGroups(util, number, null); + var formattedNumberGroups = GetNationalNumberGroups(util, number); if (checker(util, number, normalizedCandidate, formattedNumberGroups)) { return true; } - // If this didn't pass, see if there are any alternate formats, and try them instead. + // If this didn't pass, see if there are any alternate formats that match, and try them instead. var alternateFormats = MetadataManager.GetAlternateFormatsForCountry(number.CountryCode); + var nationalSignificantNumber = util.GetNationalSignificantNumber(number); if (alternateFormats != null) { foreach (var alternateFormat in alternateFormats.NumberFormatList) { + if (alternateFormat.LeadingDigitsPatternCount > 0) { + // There is only one leading digits pattern for alternate formats. + var pattern = + regexCache.GetPatternForRegex(alternateFormat.GetLeadingDigitsPattern(0)); + if (!pattern.MatchBeginning(nationalSignificantNumber).Success) { + // Leading digits don't match; try another one. + continue; + } + } formattedNumberGroups = GetNationalNumberGroups(util, number, alternateFormat); if (checker(util, number, normalizedCandidate, formattedNumberGroups)) { diff --git a/csharp/PhoneNumbers/PhoneNumberUtil.cs b/csharp/PhoneNumbers/PhoneNumberUtil.cs index fdd9d3bd4..c700502c6 100644 --- a/csharp/PhoneNumbers/PhoneNumberUtil.cs +++ b/csharp/PhoneNumbers/PhoneNumberUtil.cs @@ -482,7 +482,12 @@ public enum Leniency EXACT_GROUPING } - public bool Verify(Leniency leniency, PhoneNumber number, string candidate, PhoneNumberUtil util) + public bool Verify( + Leniency leniency, + PhoneNumber number, + string candidate, + PhoneNumberUtil util, + PhoneNumberMatcher matcher) { switch (leniency) { @@ -504,7 +509,7 @@ public bool Verify(Leniency leniency, PhoneNumber number, string candidate, Phon { return false; } - return PhoneNumberMatcher.CheckNumberGroupingIsValid( + return matcher.CheckNumberGroupingIsValid( number, candidate, util, PhoneNumberMatcher.AllNumberGroupsRemainGrouped); } case Leniency.EXACT_GROUPING: @@ -516,7 +521,7 @@ public bool Verify(Leniency leniency, PhoneNumber number, string candidate, Phon { return false; } - return PhoneNumberMatcher.CheckNumberGroupingIsValid( + return matcher.CheckNumberGroupingIsValid( number, candidate, util, PhoneNumberMatcher.AllNumberGroupsAreExactlyPresent); } default: diff --git a/resources/PhoneNumberAlternateFormats.xml b/resources/PhoneNumberAlternateFormats.xml index 10a1a51f6..7e9b1fe0e 100644 --- a/resources/PhoneNumberAlternateFormats.xml +++ b/resources/PhoneNumberAlternateFormats.xml @@ -59,8 +59,9 @@ - - 5[0256] + + + 5 $1 $2 $3 @@ -69,58 +70,131 @@ - - 9[23] - $1 $2 $3 $4 - + - [23] + + 2(?: + [23]02| + 6(?: + [25]| + 4[6-8] + )| + 9(?: + [02356]| + 4[02568]| + 72| + 8[23] + ) + )| + 3(?: + 3[28]| + 4(?: + [04-79]| + 3[5-8]| + 8[2379] + )| + 5(?: + [2467]| + 3[237]| + 8[2-5] + )| + 7[1-578]| + 8(?: + [2469]| + 3[2578]| + 5[4-8]| + 7[36-8]| + 8[5-8] + ) + )| + 2(?: + 2[24-9]| + 3[1-59]| + 47 + ) + $1 $2 $3 + + + + 9(?: + 2(?: + 2[024-9]| + 3[0-59]| + 47| + 6[245]| + 9[02-8] + )| + 3(?: + 3[28]| + 4[03-9]| + 5[2-46-8]| + 7[1-578]| + 8[2-9] + ) + ) + + $1 $2 $3 $4 + - + + 1 $1 $2 $3 $4 - - 5[079] - $1 $2 + + 5[079] + $1 $2 - - 50 - $1 $2 $3 $4 + + 5[079] + $1 $2 - + 5[079] - $1 $2 $3 $4 $5 + $1 $2 $3 $4 - + 5[079] - $1 $2 $3 + $1 $2 - + 5[079] $1 $2 + + 5[079] + $1 $2 $3 $4 + + + 5[079] + $1 $2 $3 $4 $5 + + + 5[079] + $1 $2 $3 + - 316| - 46| + (?: + 31| + 4 + )6| 51| - 732| 6(?: - 44| 5[0-3579]| [6-9] )| 7(?: - 1| - [28]0 + 20| + 32| + 8 )| [89] @@ -128,18 +202,39 @@ - 316| - 46| + (?: + 31| + 4 + )6| 51| - 732| 6(?: - 44| 5[0-3579]| [6-9] )| 7(?: - 1| - [28]0 + 20| + 32| + 8 + )| + [89] + + $1 $2 $3 $4 + + + + (?: + 31| + 4 + )6| + 51| + 6(?: + 5[0-3579]| + [6-9] + )| + 7(?: + 20| + 32| + 8 )| [89] @@ -150,42 +245,21 @@ 2| 3(?: 1[1-578]| - [3-8] + [3-68] )| 4[2378]| 5[2-6]| 6(?: - [12]| - 4[1-35-9]| + [124]| 5[468] )| 7(?: 2[1-8]| 35| - 4[1-8]| - [5-79] + [4-79] ) $1 $2 $3 - - - - 316| - 46| - 51| - 732| - 6(?: - 44| - 5[0-3579]| - [6-9] - )| - 7(?: - 1| - [28]0 - )| - [89] - - $1 $2 $3 $4 @@ -193,34 +267,19 @@ - - - 1(?: - [38]00| - 90 - ) - + + $1 $2 $3 $4 - - - 1(?: - [38]00| - 90 - ) - + + $1 $2 - - - 1(?: - [38]00| - 90 - ) - + + $1 $2 $3 $4 - + [2378] $1 $2 @@ -230,23 +289,24 @@ + 2 $1 $2 $3 $4 + - 48| - 8[7-9]| - 9[08] + 8| + 98 $1 $2 $3 + - 48| - 8[7-9]| - 9[08] + 8| + 98 $1 $2 $3 $4 @@ -256,8 +316,13 @@ - - [1-9][1-9] + + + [12467]| + 3[1-578]| + 5[13-5]| + [89][1-9] + $1 $2 @@ -267,10 +332,6 @@ - - [24-7]| - 8[3-9] - $1 $2 $3 @@ -281,35 +342,31 @@ - 3[02]| - 40| + [34]0| [68]9 - $1/$2 $3 + $1 $2 $3 - 3[02]| - 40| + [34]0| [68]9 - $1/$2 $3 $4 $5 + $1 $2 $3 $4 $5 - 3[02]| - 40| + [34]0| [68]9 - $1/$2 $3 + $1 $2 $3 - 3[02]| - 40| + [34]0| [68]9 - $1/$2 $3 $4 + $1 $2 $3 $4 @@ -317,7 +374,7 @@ 40| [68]9 - $1/$2 $3 $4 + $1 $2 $3 $4 @@ -325,197 +382,211 @@ 40| [68]9 - $1/$2 $3 $4 $5 $6 + $1 $2 $3 $4 $5 $6 - 2(?: - \d1| - 0[2389]| - 1[24]| - 28| - 34 + 0[1-389]| + 12[0-8] )| 3(?: - [3-9][15]| - 40 + [35-9][15]| + 4[015] )| - [4-8][1-9]1| - 9(?: - 06| - [1-9]1 - ) + 906| + 2(?: + [13][14]| + 2[18] + )| + (?: + 2[4-9]| + 4[2-9]| + [579][1-9]| + [68][1-8] + )1 - $1/$2 $3 + $1 $2 $3 2(?: - \d1| - 0[2389]| - 1[24]| - 28| - 34 + 0[1-389]| + 12[0-8] )| 3(?: - [3-9][15]| - 40 + [35-9][15]| + 4[015] )| - [4-8][1-9]1| - 9(?: - 06| - [1-9]1 - ) + 906| + 2(?: + [13][14]| + 2[18] + )| + (?: + 2[4-9]| + 4[2-9]| + [579][1-9]| + [68][1-8] + )1 - $1/$2 $3 + $1 $2 $3 2(?: - \d1| - 0[2389]| - 1[24]| - 28| - 34 + 0[1-389]| + 12[0-8] )| 3(?: - [3-9][15]| - 40 + [35-9][15]| + 4[015] )| - [4-8][1-9]1| - 9(?: - 06| - [1-9]1 - ) + 906| + 2(?: + [13][14]| + 2[18] + )| + (?: + 2[4-9]| + 4[2-9]| + [579][1-9]| + [68][1-8] + )1 - $1/$2 $3 $4 + $1 $2 $3 $4 2(?: - \d1| - 0[2389]| - 1[24]| - 28| - 34 + 0[1-389]| + 12[0-8] )| 3(?: - [3-9][15]| - 40 + [35-9][15]| + 4[015] )| - [4-8][1-9]1| - 9(?: - 06| - [1-9]1 - ) + 906| + 2(?: + [13][14]| + 2[18] + )| + (?: + 2[4-9]| + 4[2-9]| + [579][1-9]| + [68][1-8] + )1 - $1/$2 $3 $4 $5 + $1 $2 $3 $4 $5 2(?: - \d1| - 0[2389]| - 1[24]| - 28| - 34 + 0[1-389]| + 12[0-8] )| 3(?: - [3-9][15]| - 40 + [35-9][15]| + 4[015] )| - [4-8][1-9]1| - 9(?: - 06| - [1-9]1 - ) + 906| + 2(?: + [13][14]| + 2[18] + )| + (?: + 2[4-9]| + 4[2-9]| + [579][1-9]| + [68][1-8] + )1 - $1/$2 $3 $4 + $1 $2 $3 $4 2(?: - \d1| - 0[2389]| - 1[24]| - 28| - 34 + 0[1-389]| + 12[0-8] )| 3(?: - [3-9][15]| - 40 + [35-9][15]| + 4[015] )| - [4-8][1-9]1| - 9(?: - 06| - [1-9]1 - ) + 906| + 2(?: + [13][14]| + 2[18] + )| + (?: + 2[4-9]| + 4[2-9]| + [579][1-9]| + [68][1-8] + )1 - $1/$2 $3 $4 $5 + $1 $2 $3 $4 $5 2(?: - \d1| - 0[2389]| - 1[24]| - 28| - 34 + 0[1-389]| + 12[0-8] )| 3(?: - [3-9][15]| - 40 + [35-9][15]| + 4[015] )| - [4-8][1-9]1| - 9(?: - 06| - [1-9]1 - ) + 906| + 2(?: + [13][14]| + 2[18] + )| + (?: + 2[4-9]| + 4[2-9]| + [579][1-9]| + [68][1-8] + )1 - $1/$2 $3 $4 + $1 $2 $3 $4 - - [24-6]| - [7-9](?: - \d[1-9]| - [1-9]\d + 2(?: + 0[4-6]| + 1(?: + [035-9]| + 29 + )| + 3[0235-9]| + 7[2-7] )| 3(?: 3(?: 0[1-467]| 2[127-9]| 3[124578]| - [46][1246]| 7[1257-9]| 8[1256]| 9[145] )| 4(?: 2[135]| - 3[1357]| 4[13578]| - 6[1246]| - 7[1356]| 9[1346] )| 5(?: 0[14]| 2[1-3589]| - 3[1357]| - 4[1246]| 6[1-4]| - 7[1346]| - 8[13568]| - 9[1246] + 7[13468]| + 8[13568] )| 6(?: - 0[356]| 2[1-489]| 3[124-6]| - 4[1347]| 6[13]| 7[12579]| 8[1-356]| @@ -523,73 +594,133 @@ )| 7(?: 2[1-7]| - 3[1357]| 4[145]| 6[1-5]| 7[1-4] )| 8(?: 21| - 3[1468]| - 4[1347]| - 6[0135-9]| + 6| 7[1467]| 8[136] )| 9(?: 0[12479]| 2[1358]| - 3[1357]| 4[134679]| 6[1-9]| 7[136]| - 8[147]| - 9[1468] + 8[147] ) - ) + )| + 41| + [56]0| + 7(?: + 0[2-8]| + 8[02-5]| + 9[03-7] + )| + 8(?: + 3[02-46-9]| + 5[03-9]| + 6[2-8]| + 8[024-6] + )| + 9(?: + 0[7-9]| + 7[02-467] + )| + (?: + 45| + 84 + )[02-6]| + 3(?: + 83| + 99 + )[1468]| + 3[68]4[1347]| + 3(?: + 47| + 60 + )[1356]| + (?: + 66| + 71| + 80 + )[2-9]| + 3(?: + 3[46]| + 46| + 5[49] + )[1246]| + (?: + 22| + 47| + 81 + )[02-79]| + 3[4579]3[1357]| + (?: + 28| + 49| + 5[79]| + 7[27]| + 9[589] + )[02-7]| + (?: + 2[569]| + 4[2-48]| + 5[124-6]| + 6[1-358]| + 73| + 82| + 9[1-4] + )[02-9]| + (?: + 24| + [49]6| + 5[38]| + 6[47]| + 7[4-6]| + 87 + )[02-8] - $1/$2 $3 + $1 $2 $3 - [24-6]| - [7-9](?: - \d[1-9]| - [1-9]\d + 2(?: + 0[4-6]| + 1(?: + [035-9]| + 29 + )| + 3[0235-9]| + 7[2-7] )| 3(?: 3(?: 0[1-467]| 2[127-9]| 3[124578]| - [46][1246]| 7[1257-9]| 8[1256]| 9[145] )| 4(?: 2[135]| - 3[1357]| 4[13578]| - 6[1246]| - 7[1356]| 9[1346] )| 5(?: 0[14]| 2[1-3589]| - 3[1357]| - 4[1246]| 6[1-4]| - 7[1346]| - 8[13568]| - 9[1246] + 7[13468]| + 8[13568] )| 6(?: - 0[356]| 2[1-489]| 3[124-6]| - 4[1347]| 6[13]| 7[12579]| 8[1-356]| @@ -597,73 +728,133 @@ )| 7(?: 2[1-7]| - 3[1357]| 4[145]| 6[1-5]| 7[1-4] )| 8(?: 21| - 3[1468]| - 4[1347]| - 6[0135-9]| + 6| 7[1467]| 8[136] )| 9(?: 0[12479]| 2[1358]| - 3[1357]| 4[134679]| 6[1-9]| 7[136]| - 8[147]| - 9[1468] + 8[147] ) - ) + )| + 41| + [56]0| + 7(?: + 0[2-8]| + 8[02-5]| + 9[03-7] + )| + 8(?: + 3[02-46-9]| + 5[03-9]| + 6[2-8]| + 8[024-6] + )| + 9(?: + 0[7-9]| + 7[02-467] + )| + (?: + 45| + 84 + )[02-6]| + 3(?: + 83| + 99 + )[1468]| + 3[68]4[1347]| + 3(?: + 47| + 60 + )[1356]| + (?: + 66| + 71| + 80 + )[2-9]| + 3(?: + 3[46]| + 46| + 5[49] + )[1246]| + (?: + 22| + 47| + 81 + )[02-79]| + 3[4579]3[1357]| + (?: + 28| + 49| + 5[79]| + 7[27]| + 9[589] + )[02-7]| + (?: + 2[569]| + 4[2-48]| + 5[124-6]| + 6[1-358]| + 73| + 82| + 9[1-4] + )[02-9]| + (?: + 24| + [49]6| + 5[38]| + 6[47]| + 7[4-6]| + 87 + )[02-8] - $1/$2 $3 + $1 $2 $3 - [24-6]| - [7-9](?: - \d[1-9]| - [1-9]\d + 2(?: + 0[4-6]| + 1(?: + [035-9]| + 29 + )| + 3[0235-9]| + 7[2-7] )| 3(?: 3(?: 0[1-467]| 2[127-9]| 3[124578]| - [46][1246]| 7[1257-9]| 8[1256]| 9[145] )| 4(?: 2[135]| - 3[1357]| 4[13578]| - 6[1246]| - 7[1356]| 9[1346] )| 5(?: 0[14]| 2[1-3589]| - 3[1357]| - 4[1246]| 6[1-4]| - 7[1346]| - 8[13568]| - 9[1246] + 7[13468]| + 8[13568] )| 6(?: - 0[356]| 2[1-489]| 3[124-6]| - 4[1347]| 6[13]| 7[12579]| 8[1-356]| @@ -671,73 +862,132 @@ )| 7(?: 2[1-7]| - 3[1357]| 4[145]| 6[1-5]| 7[1-4] )| 8(?: 21| - 3[1468]| - 4[1347]| - 6[0135-9]| + 6| 7[1467]| 8[136] )| 9(?: 0[12479]| 2[1358]| - 3[1357]| 4[134679]| 6[1-9]| 7[136]| - 8[147]| - 9[1468] + 8[147] ) - ) + )| + 4[19]| + 7(?: + 8[02-5]| + 9[03-7] + )| + 8(?: + 3[02-46-9]| + 5[03-9]| + 6[2-8]| + 8[024-6] + )| + 9(?: + 0[7-9]| + 7[02-467] + )| + [5-7]0| + (?: + 45| + 84 + )[02-6]| + 3(?: + 83| + 99 + )[1468]| + 3[68]4[1347]| + 3(?: + 47| + 60 + )[1356]| + (?: + 66| + 71| + 80 + )[2-9]| + 3(?: + 3[46]| + 46| + 5[49] + )[1246]| + (?: + 22| + 47| + 81 + )[02-79]| + 3[4579]3[1357]| + (?: + 28| + 5[79]| + 7[27]| + 9[589] + )[02-7]| + (?: + 2[569]| + 4[2-48]| + 5[124-6]| + 6[1-358]| + 73| + 82| + 9[1-4] + )[02-9]| + (?: + 24| + [49]6| + 5[38]| + 6[47]| + 7[4-6]| + 87 + )[02-8] - $1/$2 $3 $4 + $1 $2 $3 $4 - [24-6]| - [7-9](?: - \d[1-9]| - [1-9]\d + 15[1279]| + 2(?: + 0[4-6]| + 1(?: + [035-9]| + 29 + )| + 3[0235-9]| + 7[2-7] )| 3(?: 3(?: 0[1-467]| 2[127-9]| 3[124578]| - [46][1246]| 7[1257-9]| 8[1256]| 9[145] )| 4(?: 2[135]| - 3[1357]| 4[13578]| - 6[1246]| - 7[1356]| 9[1346] )| 5(?: 0[14]| 2[1-3589]| - 3[1357]| - 4[1246]| 6[1-4]| - 7[1346]| - 8[13568]| - 9[1246] + 7[13468]| + 8[13568] )| 6(?: - 0[356]| 2[1-489]| 3[124-6]| - 4[1347]| 6[13]| 7[12579]| 8[1-356]| @@ -745,73 +995,133 @@ )| 7(?: 2[1-7]| - 3[1357]| 4[145]| 6[1-5]| 7[1-4] )| 8(?: 21| - 3[1468]| - 4[1347]| - 6[0135-9]| + 6| 7[1467]| 8[136] )| 9(?: 0[12479]| 2[1358]| - 3[1357]| 4[134679]| 6[1-9]| 7[136]| - 8[147]| - 9[1468] + 8[147] ) - ) + )| + 41| + [56]0| + 7(?: + 0[2-8]| + 8[02-5]| + 9[03-7] + )| + 8(?: + 3[02-46-9]| + 5[03-9]| + 6[2-8]| + 8[024-6] + )| + 9(?: + 0[7-9]| + 7[02-467] + )| + (?: + 45| + 84 + )[02-6]| + 3(?: + 83| + 99 + )[1468]| + 3[68]4[1347]| + 3(?: + 47| + 60 + )[1356]| + (?: + 66| + 71| + 80 + )[2-9]| + 3(?: + 3[46]| + 46| + 5[49] + )[1246]| + (?: + 22| + 47| + 81 + )[02-79]| + 3[4579]3[1357]| + (?: + 28| + 49| + 5[79]| + 7[27]| + 9[589] + )[02-7]| + (?: + 2[569]| + 4[2-48]| + 5[124-6]| + 6[1-358]| + 73| + 82| + 9[1-4] + )[02-9]| + (?: + 24| + [49]6| + 5[38]| + 6[47]| + 7[4-6]| + 87 + )[02-8] - $1/$2 $3 $4 + $1 $2 $3 $4 - [24-6]| - [7-9](?: - \d[1-9]| - [1-9]\d + 2(?: + 0[4-6]| + 1(?: + [035-9]| + 29 + )| + 3[0235-9]| + 7[2-7] )| 3(?: 3(?: 0[1-467]| 2[127-9]| 3[124578]| - [46][1246]| 7[1257-9]| 8[1256]| 9[145] )| 4(?: 2[135]| - 3[1357]| 4[13578]| - 6[1246]| - 7[1356]| 9[1346] )| 5(?: 0[14]| 2[1-3589]| - 3[1357]| - 4[1246]| 6[1-4]| - 7[1346]| - 8[13568]| - 9[1246] + 7[13468]| + 8[13568] )| 6(?: - 0[356]| 2[1-489]| 3[124-6]| - 4[1347]| 6[13]| 7[12579]| 8[1-356]| @@ -819,73 +1129,133 @@ )| 7(?: 2[1-7]| - 3[1357]| 4[145]| 6[1-5]| 7[1-4] )| 8(?: 21| - 3[1468]| - 4[1347]| - 6[0135-9]| + 6| 7[1467]| 8[136] )| 9(?: 0[12479]| 2[1358]| - 3[1357]| 4[134679]| 6[1-9]| 7[136]| - 8[147]| - 9[1468] + 8[147] ) - ) + )| + 41| + [56]0| + 7(?: + 0[2-8]| + 8[02-5]| + 9[03-7] + )| + 8(?: + 3[02-46-9]| + 5[03-9]| + 6[2-8]| + 8[024-6] + )| + 9(?: + 0[7-9]| + 7[02-467] + )| + (?: + 45| + 84 + )[02-6]| + 3(?: + 83| + 99 + )[1468]| + 3[68]4[1347]| + 3(?: + 47| + 60 + )[1356]| + (?: + 66| + 71| + 80 + )[2-9]| + 3(?: + 3[46]| + 46| + 5[49] + )[1246]| + (?: + 22| + 47| + 81 + )[02-79]| + 3[4579]3[1357]| + (?: + 28| + 49| + 5[79]| + 7[27]| + 9[589] + )[02-7]| + (?: + 2[569]| + 4[2-48]| + 5[124-6]| + 6[1-358]| + 73| + 82| + 9[1-4] + )[02-9]| + (?: + 24| + [49]6| + 5[38]| + 6[47]| + 7[4-6]| + 87 + )[02-8] - $1/$2 $3 $4 + $1 $2 $3 $4 - [24-6]| - [7-9](?: - \d[1-9]| - [1-9]\d + 2(?: + 0[4-6]| + 1(?: + [035-9]| + 29 + )| + 3[0235-9]| + 7[2-7] )| 3(?: 3(?: 0[1-467]| 2[127-9]| 3[124578]| - [46][1246]| 7[1257-9]| 8[1256]| 9[145] )| 4(?: 2[135]| - 3[1357]| 4[13578]| - 6[1246]| - 7[1356]| 9[1346] )| 5(?: 0[14]| 2[1-3589]| - 3[1357]| - 4[1246]| 6[1-4]| - 7[1346]| - 8[13568]| - 9[1246] + 7[13468]| + 8[13568] )| 6(?: - 0[356]| 2[1-489]| 3[124-6]| - 4[1347]| 6[13]| 7[12579]| 8[1-356]| @@ -893,108 +1263,366 @@ )| 7(?: 2[1-7]| - 3[1357]| 4[145]| 6[1-5]| 7[1-4] )| 8(?: 21| - 3[1468]| - 4[1347]| - 6[0135-9]| + 6| 7[1467]| 8[136] )| 9(?: 0[12479]| 2[1358]| - 3[1357]| 4[134679]| 6[1-9]| 7[136]| - 8[147]| - 9[1468] + 8[147] ) - ) + )| + 41| + [56]0| + 7(?: + 0[2-8]| + 8[02-5]| + 9[03-7] + )| + 8(?: + 3[02-46-9]| + 5[03-9]| + 6[2-8]| + 8[024-6] + )| + 9(?: + 0[7-9]| + 7[02-467] + )| + (?: + 45| + 84 + )[02-6]| + 3(?: + 83| + 99 + )[1468]| + 3[68]4[1347]| + 3(?: + 47| + 60 + )[1356]| + (?: + 66| + 71| + 80 + )[2-9]| + 3(?: + 3[46]| + 46| + 5[49] + )[1246]| + (?: + 22| + 47| + 81 + )[02-79]| + 3[4579]3[1357]| + (?: + 28| + 49| + 5[79]| + 7[27]| + 9[589] + )[02-7]| + (?: + 2[569]| + 4[2-48]| + 5[124-6]| + 6[1-358]| + 73| + 82| + 9[1-4] + )[02-9]| + (?: + 24| + [49]6| + 5[38]| + 6[47]| + 7[4-6]| + 87 + )[02-8] - $1/$2 $3 $4 + $1 $2 $3 $4 - - 3 - $1/$2 $3 + + 3(?: + 3(?: + 0[589]| + 2[03]| + 3[369]| + 4[357]| + 6[0357]| + 7[0346]| + 8[347]| + 9[236-8] + )| + 4(?: + 4[2469]| + 6[03579]| + 9[0257] + )| + 5(?: + 0[235]| + 2[046]| + [49][357]| + 6[09]| + 7[2579]| + 8[2479] + )| + 6(?: + 2[05]| + 3[37]| + 6[02459]| + 7[03468]| + 8[47]| + 9[246] + )| + 7(?: + 2[09]| + 4[236]| + 60| + 75 + )| + 8(?: + 2[0239]| + 3[023579]| + 7[23589]| + 8[2457] + )| + 9(?: + 0[03568]| + 3[24689]| + 4[0258]| + 60| + 7[2457]| + 8[23568]| + 9[23579] + ) + )| + 3[68]4[2568]| + 3(?: + 47| + 60 + )[2478]| + 3[49]2[02469]| + 3[457]3[2468] + + $1 $2 $3 - 3 - $1/$2 $3 + + 3(?: + 3(?: + 0[589]| + 2[03]| + 3[369]| + 4[357]| + 6[0357]| + 7[0346]| + 8[347]| + 9[236-8] + )| + 4(?: + 4[2469]| + 6[03579]| + 9[0257] + )| + 5(?: + 0[235]| + 2[046]| + [49][357]| + 6[09]| + 7[2579]| + 8[2479] + )| + 6(?: + 2[05]| + 3[37]| + 6[02459]| + 7[03468]| + 8[47]| + 9[246] + )| + 7(?: + 2[09]| + 4[236]| + 60| + 75 + )| + 8(?: + 2[0239]| + 3[023579]| + 7[23589]| + 8[2457] + )| + 9(?: + 0[03568]| + 3[24689]| + 4[0258]| + 60| + 7[2457]| + 8[23568]| + 9[23579] + ) + )| + 3[68]4[2568]| + 3(?: + 47| + 60 + )[2478]| + 3[49]2[02469]| + 3[457]3[2468] + + $1 $2 $3 - 3 - $1/$2 $3 $4 - - - - 15 + + 3(?: + 3(?: + 0[589]| + 2[03]| + 3[369]| + 4[357]| + 6[0357]| + 7[0346]| + 8[347]| + 9[236-8] + )| + 4(?: + 4[2469]| + 6[03579]| + 9[0257] + )| + 5(?: + 0[235]| + 2[046]| + [49][357]| + 6[09]| + 7[2579]| + 8[2479] + )| + 6(?: + 2[05]| + 3[37]| + 6[02459]| + 7[03468]| + 8[47]| + 9[246] + )| + 7(?: + 2[09]| + 4[236]| + 60| + 75 + )| + 8(?: + 2[0239]| + 3[023579]| + 7[23589]| + 8[2457] + )| + 9(?: + 0[03568]| + 3[24689]| + 4[0258]| + 60| + 7[2457]| + 8[23568]| + 9[23579] + ) + )| + 3[68]4[2568]| + 3(?: + 47| + 60 + )[2478]| + 3[49]2[02469]| + 3[457]3[2468] + $1 $2 $3 $4 - - 15 + + 15[1279] $1 $2 $3 - - 15 + + 15[1279] $1 $2 $3 - - 15 + + 15[1279] $1 $2 - + + 15[1279] + $1 $2 $3 $4 + + - 1[5-7]| + 1[67]| 800 $1 $2 $3 $4 - + - 1[5-7]| + 1[67]| 800 $1 $2 $3 $4 - + + 800 + $1 $2 $3 + + 800 $1 $2 $3 $4 + + 800 + $1 $2 $3 $4 + + - - 180| - 900[1359] - + 900 $1 $2 $3 $4 + - - 180| - 900[1359] - + 900 $1 $2 $3 $4 - - - 180| - 900[1359] - + + 180 + $1 $2 $3 $4 + + + + 180 $1 $2 - - - 900[1359] - + + 180 $1 $2 $3 $4 + + + 900 + $1 $2 + @@ -1006,82 +1634,82 @@ 6 $1 $2 $3 + - - [69]| - 4[3-8]| - 5(?: - [02]| - 1(?: - [0-8]| - 95 - )| - 5[0-478]| - 6(?: - 4[0-4]| - 5[1-589] - ) - )| - 7[1-9] - + [4-79] $1 $2 $3 - - [69]| - 4[3-8]| - 5(?: - [02]| - 1(?: - [0-8]| - 95 - )| - 5[0-478]| - 6(?: - 4[0-4]| - 5[1-589] - ) - )| - 7[1-9] - + [4-79] $1 $2 $3 - + - - [5-9] + + + + [5-7]| + 80[367]| + 90[12]| + [89][1-8] + $1 $2 $3 - - 9 + + + + 9(?: + 0[12]| + [1-8] + ) + $1 $2 $3 $4 - + + + + [2568][1-8]| + 3(?: + 0[1-9]| + [1-9] + )| + 9 + + $1 $2 $3 + + - [14]| - 2[09]| + [12]0[1-9]| + 4| + 1[3-9]| + 29| 50| - 7[135] + 7[15] $1 $2 $3 - + + - [25689][1-8]| - 3 + [2568][1-8]| + 3(?: + 0[1-9]| + [1-9] + )| + 9 - $1 $2 + $1 $2 $3 @@ -1089,44 +1717,57 @@ - + 7 $1 $2 $3 - - + + - + 20 - $1-$2-$3 + $1 $2 $3 + + + + + 1(?: + 1| + [2-69]1 + )| + 20| + [389]| + 7(?: + [1-57-9]| + 624 + ) + + $1 $2 $3 + 20 - $1-$2-$3-$4 + $1 $2 $3 $4 - - 1[2-48][02-9]| + 1(?: + [2-69][02-9]| + [78] + )| 7(?: - [1-5789]| + [1-57-9]| 624 ) $1 $2 $3 - - - 7[1-5789] - $1 $2 $3 - - - 80 + + 8 $1 $2 $3 @@ -1135,15 +1776,43 @@ - - [348] + + + 32 + $1 $2 $3 $4 + + + + 32 $1 $2 $3 $4 $5 + + + [348] + $1 $2 + + + + [348] + $1 $2 $3 + + + + 32 + $1 $2 $3 $4 + + + + 32 + $1 $2 $3 + - + 2 @@ -1155,187 +1824,355 @@ + 21 $1 $2 $3 - - - - - - - - 1 - $1 $2 $3 - - - 1 - $1 $2 $3 $4 - - - 6[09] - $1 $2 $3 - - - [2-69] - $1 $2 $3 - + + + + + + + + 1 + $1 $2 $3 + + + 1 + $1 $2 $3 $4 + + + [2-69] + $1 $2 $3 + + + 6 + $1 $2 $3 + - + + 1 $1 $2 $3 + - [2-9] $1 $2 $3 - + - + 2[124]| [36]1 - $1 $2 + $1 $2 $3 - + 2[124]| [36]1 - $1 $2 + $1 $2 $3 - - 8[1-35-9] - $1-$2-$3 + + + 2[124]| + [36]1 + + $1 $2 $3 $4 - + 8[1-35-9] - $1-$2-$3-$4 + $1 $2 $3 + + + 8 + $1 $2 $3 + + + 8 + $1 $2 $3 $4 - + - + [2-489] - $1-$2-$3-$4 + $1 $2 $3 $4 - + - + been seen online. Some common ones are listed below. --> + + 6(?: + [09]| + 127| + 2(?: + [036]| + 8[0-379]| + 9[0-4679] + )| + 3(?: + [06-9]| + 5[0-46-9] + ) + )| 7(?: - [02-8]| - 19| - 9[07-9] + [07]| + 19[0-5]| + 2[0235-9]| + 3[025-9]| + 4[0-35689]| + 5[02-46-9]| + 6(?: + [02-9]| + 1[0-257-9] + )| + 8(?: + [0-79]| + 8[0189] + )| + 9(?: + [089]| + 31| + 7[02-9] + ) )| 8(?: - 0[015-9]| - [13-69]| - 2[02-9]| - 7[01-69]| - 8[0-24-9] + 0(?: + [01589]| + 6[67]| + 7[02-9] + )| + 1[0-57-9]| + 2[235-9]| + 3[03-57-9]| + [45]| + 6[02457-9]| + 7[1-69]| + 8(?: + [0-25-9]| + 4[047-9] + )| + 9(?: + [02-9]| + 1[027-9] + ) )| - 9 + 9| + 7(?: + 2[14]| + 3[134]| + 4[47]| + 5[15] + )[017-9]| + 8(?: + 16| + 2[014]| + 3[126]| + 6[136]| + 7[078]| + 83 + )[07-9] $1 $2 $3 - + + 6(?: + [09]| + 127| + 2(?: + [036]| + 8[0-379]| + 9[0-4679] + )| + 3(?: + [06-9]| + 5[0-46-9] + ) + )| 7(?: - [02-8]| - 19| - 9[07-9] + [07]| + 19[0-5]| + 2[0235-9]| + 3[025-9]| + 4[0-35689]| + 5[02-46-9]| + 6(?: + [02-9]| + 1[0-257-9] + )| + 8(?: + [0-79]| + 8[0189] + )| + 9(?: + [089]| + 31| + 7[02-9] + ) )| 8(?: - 0[015-9]| - [13-69]| - 2[02-9]| - 7[01-69]| - 8[0-24-9] + 0(?: + [01589]| + 6[67]| + 7[02-9] + )| + 1[0-57-9]| + 2[235-9]| + 3[03-57-9]| + [45]| + 6[02457-9]| + 7[1-69]| + 8(?: + [0-25-9]| + 4[047-9] + )| + 9(?: + [02-9]| + 1[027-9] + ) )| - 9 + 9| + 7(?: + 2[14]| + 3[134]| + 4[47]| + 5[15] + )[017-9]| + 8(?: + 16| + 2[014]| + 3[126]| + 6[136]| + 7[078]| + 83 + )[07-9] $1 $2 $3 $4 $5 - - + geographical numbers. --> - 79[1-9]| - 80[2-46] + 79(?: + [089]| + 31| + 7[02-9] + )| + 80(?: + [01589]| + 6[67]| + 7[02-9] + ) $1 $2 $3 - + 7(?: - 12| + 19[0-5]| + 2[0235-9]| + 3[025-9]| + 4[0-35689]| + 5[02-46-9]| + 6(?: + [02-9]| + 1[0-257-9] + )| + 7| + 8(?: + [0-79]| + 8[0189] + ) + )| + 8(?: + 1[0-57-9]| + 2[235-9]| + 3[03-57-9]| + [45]| + 6[02457-9]| + 7[1-69]| + 8(?: + [0-25-9]| + 4[047-9] + )| + 9(?: + [02-9]| + 1[027-9] + ) + )| + 7(?: 2[14]| 3[134]| 4[47]| - 5[15]| - [67]1| - 88 - )| + 5[15] + )[017-9]| 8(?: 16| 2[014]| 3[126]| 6[136]| 7[078]| - 8[34]| - 91 - ) + 83 + )[07-9] $1 $2 $3 - + 7(?: - [02-8]| - 19| - 9[07-9] + 19[0-5]| + 2[0235-9]| + 3[025-9]| + 4[0-35689]| + 5[02-46-9]| + 6(?: + [02-9]| + 1[0-257-9] + )| + 7 )| - 8(?: - 0[015-9]| - [13-69]| - 2[02-9]| - 7[01-69]| - 8[0-24-9] - ) + 80(?: + [01589]| + 6[67]| + 7[02-9] + )| + 7(?: + 2[14]| + 3[134]| + 4[47]| + 5[15] + )[017-9] $1 $2 $3 @@ -1343,21 +2180,31 @@ - + - - 0[13-57-9][2-46-8] + + + 0(?: + [13-579][2-46-8]| + 8[236-8] + ) + $1 $2 $3 $4 - - 0[13-57-9][2-46-8] + + + 0(?: + [13-579][2-46-8]| + 8[236-8] + ) + $1 $2 $3 - + @@ -1368,7 +2215,7 @@ 99 )0 - $1-$2-$3 + $1 $2 $3 @@ -1378,7 +2225,7 @@ 99 )0 - $1-$2-$3-$4 + $1 $2 $3 $4 @@ -1388,7 +2235,7 @@ 99 )0 - $1-$2-$3 + $1 $2 $3 @@ -1396,26 +2243,24 @@ + $1 $2 $3 $4 - + - - 20 + $1 $2 $3 - - 20 + $1 $2 $3 - - 20 + $1 $2 @@ -1424,7 +2269,7 @@ - + [1-689] $1 $2 $3 @@ -1432,6 +2277,7 @@ [1-689] $1 $2 + 7 $1 $2 $3 @@ -1443,14 +2289,22 @@ + + 2(?: + [0367]| + 4[3-8] + ) + $1 $2 $3 - + + 22| @@ -1458,6 +2312,7 @@ $1 $2 $3 $4 + [67] $1 $2 $3 @@ -1465,11 +2320,12 @@ - + - - 925 + + + 92 $1 $2 $3 @@ -1478,30 +2334,31 @@ - + + 33| - 55| + 5[56]| 81 - $1 $2 $3 + $1 $2 $3 $4 $5 - [2467]| + [24679]| 3[0-2457-9]| 5[089]| - 8[02-9]| - 9[0-35-9] + 8[02-46-9] - $1 $2 $3 + $1 $2 $3 $4 - + + 2 $1 $2 $3 @@ -1510,9 +2367,10 @@ - + - + + 1[035]| 2[0346]| @@ -1520,11 +2378,13 @@ 4[0356]| 5[0358]| 7| - 8[4578] + 8[4578]| + 91 $1 $2 $3 - + + 1[16-8]| 2[259]| @@ -1540,18 +2400,17 @@ - + - [346]| - 7[2-57-9]| - 9[1-9] + [3467]| + 9[2-9] $1 $2 $3 - + - 90 + [89]0 $1 $2 $3 @@ -1560,7 +2419,7 @@ - + 7 $1 $2 $3 @@ -1578,19 +2437,15 @@ - + - - + + 2[12] $1 $2 $3 - - - 9 - $1 $2 $3 - + 2[12]| @@ -1598,6 +2453,11 @@ $1 $2 $3 $4 + + + 9 + $1 $2 $3 + @@ -1606,108 +2466,181 @@ - (?: - [26]1| - 3[289]| - 4[124678]| - 7[123]| - 8[1236] - ) + [26]1| + 3[289]| + 4[1246-8]| + 7[1-3]| + 8[1-36] $1 $2 $3 - (?: - [26]1| - 3[289]| - 4[124678]| - 7[123]| - 8[1236] - ) + [26]1| + 3[289]| + 4[1246-8]| + 7[1-3]| + 8[1-36] $1 $2 - [2-8][1-9] + + 2[279]| + 3[13-5]| + 4[359]| + 5[1-5]| + 6[347]| + 7[46-8]| + 85 + $1 $2 - + - + + + [16]| + 2[0-24-7]| + 3[0-8]| (?: 2[389]| 39 - )0 - - $1 $2 - - - - 1| - 2(?: - [0-24-7]| - [389][1-9] - )| - 3(?: - [0-8]| - 9[1-9] - ) + )[2-9] $1 $2 $3 - + + 1| - 2(?: - [0-24-7]| - [389][1-9] - )| - 3(?: - [0-8]| - 9[1-9] - ) + 2[0-24-7]| + 3[0-8]| + (?: + 2[389]| + 39 + )[2-9] $1 $2 $3 $4 - + + 6 $1 $2 $3 $4 - - 6 - $1 $2 $3 - - + + - [346-9] - $1 $2-$3 + + [3489]| + 7(?: + 1(?: + [0-6]2| + 7| + 8[27] + )| + 2(?: + 1[23]| + [2-9]2 + ) + ) + + $1 $2 $3 + - [346-9] + + [3489]| + 7(?: + 1(?: + [06][3-6]| + [13-5][3-5]| + 2[35]| + 8[34] + )| + 2(?: + [1-38][3-5]| + [49][35]| + 5[3-6]| + 6| + 7[457] + ) + ) + $1 $2 - - [346-9] - $1 $2-$3-$4 + + + + 7(?: + 1| + 2(?: + [1-689]| + 7[2457] + ) + ) + + $1 $2 $3 $4 + - [346-9] - $1 $2-$3-$4 + + [3489]| + 7(?: + [04-8]| + 1(?: + 04| + [236]3| + 4[3-5]| + 5[34] + )| + 2(?: + 13| + 34| + 7[39] + ) + ) + + $1 $2 $3 $4 + - [346-9] - $1-$2 $3-$4-$5 + + [3489]| + 7(?: + [04-8]| + 1(?: + 04| + [236]3| + 4[3-5]| + 5[34] + )| + 2(?: + 13| + 34| + 7[39] + ) + ) + + $1 $2 $3 $4 $5 + + + + [3489] + $1 $2 $3 $4 @@ -1716,7 +2649,7 @@ - + 2 $1 $2 @@ -1726,11 +2659,9 @@ + - - 7[5-9]| - 8[47-9] - + [78] $1 $2 @@ -1739,14 +2670,23 @@ - + + - [23589]| - 4(?: - [0-35-9]| - 4[0-35-9] + [2-4]| + 5(?: + [02-69]| + 1[06] ) + $1 $2 $3 + + + + + 512| + [89] + $1 $2 $3 $4 @@ -1755,11 +2695,13 @@ - + + [67] $1 $2 $3 - + + [67] $1 $2 $3 @@ -1767,46 +2709,54 @@ - + - + [38]9| - 4(?: - [45][0-5]| - 87 - )| + 4[45][0-5]| 5(?: 0| 6(?: 3[14-7]| 7 - )| - 7[37] + ) )| - 6[36-8]| - 9[1-9] + 6(?: + [12][018]| + [36-8] + )| + 7| + 9[1-9]| + (?: + 48| + 57 + )[0137-9] $1 $2 $3 $4 - + [38]9| - 4(?: - [45][0-5]| - 87 - )| + 4[45][0-5]| 5(?: 0| 6(?: 3[14-7]| 7 - )| - 7[37] + ) )| - 6[36-8]| - 9[1-9] + 6(?: + [12][018]| + [36-8] + )| + 7| + 9[1-9]| + (?: + 48| + 57 + )[0137-9] $1 $2 $3 $4 @@ -1822,28 +2772,37 @@ - + - - 9 + + + [69] $1 $2 $3 - - [48] + + + 2[48] $1 $2 $3 $4 + + + 1 + $1 $2 $3 + - + + 86[1-9] $1 $2 $3 + diff --git a/resources/PhoneNumberMetaData.xml b/resources/PhoneNumberMetaData.xml index dd4486797..35258f682 100644 --- a/resources/PhoneNumberMetaData.xml +++ b/resources/PhoneNumberMetaData.xml @@ -100,7 +100,7 @@ - + @@ -122,14 +122,20 @@ 40123 4\d{4} + 542011 - [01589]\d{5} + + (?: + 0[1-9]| + [1589]\d + )\d{4} + - + - + @@ -263,7 +269,7 @@ - + @@ -306,7 +312,7 @@ - + - + - + @@ -583,7 +589,7 @@ - + @@ -691,7 +697,7 @@ - + @@ -727,7 +733,7 @@ - + + - + @@ -2289,11 +2295,11 @@ - + + - @@ -2477,16 +2483,21 @@ 550123456 - 1471\d{5}| (?: - 145| - 550 - )\d{6} + 14(?: + 5(?: + 1[0458]| + [23][458] + )| + 71\d + )| + 550\d\d + )\d{4} - + @@ -2561,13 +2572,13 @@ - + + - - + @@ -2748,7 +2759,7 @@ - + @@ -2861,7 +2872,7 @@ - + - + @@ -3352,7 +3363,7 @@ - + @@ -3475,7 +3486,7 @@ - + @@ -3527,7 +3538,7 @@ - + - + @@ -3766,7 +3777,7 @@ - + @@ -3809,7 +3820,7 @@ - + @@ -3864,13 +3875,13 @@ - + + - - + - + @@ -4035,7 +4046,7 @@ - + - + @@ -4186,7 +4197,7 @@ - + + - + + @@ -4693,7 +4704,7 @@ - + - + @@ -4948,7 +4959,7 @@ - + - - + + @@ -5216,16 +5227,21 @@ 550123456 - 1471\d{5}| (?: - 145| - 550 - )\d{6} + 14(?: + 5(?: + 1[0458]| + [23][458] + )| + 71\d + )| + 550\d\d + )\d{4} - + @@ -5279,7 +5295,7 @@ - + @@ -5313,7 +5329,7 @@ - + @@ -5363,7 +5379,7 @@ - + - + @@ -5507,7 +5523,7 @@ - + @@ -5537,7 +5553,7 @@ - + + @@ -5766,14 +5782,14 @@ - + + internationalPrefix="00|1(?:[12]\d|79|9[0235-7])\d\d00" nationalPrefix="0" + nationalPrefixForParsing="0|(1(?:[12]\d|79|9[0235-7])\d\d)"> 96 @@ -6793,7 +6809,7 @@ - + - + - + @@ -7010,7 +7026,7 @@ - + @@ -7054,7 +7070,7 @@ - + @@ -7135,9 +7151,9 @@ - - + + @@ -7246,16 +7262,21 @@ 550123456 - 1471\d{5}| (?: - 145| - 550 - )\d{6} + 14(?: + 5(?: + 1[0458]| + [23][458] + )| + 71\d + )| + 550\d\d + )\d{4} - + @@ -7317,7 +7338,7 @@ - + @@ -7429,7 +7450,7 @@ - + + @@ -7979,7 +8000,7 @@ - + @@ -8029,7 +8050,7 @@ - + - + - + @@ -8312,7 +8333,7 @@ - + @@ -8379,7 +8400,7 @@ - + @@ -8524,7 +8545,7 @@ - + @@ -8614,10 +8635,9 @@ - - - + + @@ -8641,7 +8661,7 @@ 8[0-247-9] )| 7(?: - 0[067]| + 0[06-8]| 6[1267]| 7[017] ) @@ -8666,7 +8686,7 @@ - + @@ -8708,7 +8728,7 @@ - + @@ -8826,7 +8846,7 @@ - + @@ -8979,8 +8999,8 @@ - - + + + - + @@ -9212,7 +9232,7 @@ - + @@ -9248,7 +9268,7 @@ - + - + @@ -9402,7 +9422,7 @@ - + @@ -9451,11 +9471,11 @@ - + + - @@ -9949,7 +9969,7 @@ - + - + @@ -10064,12 +10084,15 @@ 70 $1 $2 $3 + + + 32 + $1 $2 $3 $4 + [57] $1 $2 $3 $4 - [348] $1 $2 $3 $4 @@ -10089,7 +10112,7 @@ 706\d{6} - + 322123456 (?: @@ -10142,7 +10165,7 @@ - + + + - - + @@ -10376,7 +10399,7 @@ - + @@ -10421,7 +10444,7 @@ - + @@ -10477,7 +10500,7 @@ - + @@ -10527,7 +10550,7 @@ - + @@ -10580,7 +10603,7 @@ - + @@ -10645,7 +10668,7 @@ - + @@ -10704,7 +10727,7 @@ - + @@ -10849,7 +10872,7 @@ - + @@ -10894,7 +10917,7 @@ - + - + @@ -11092,7 +11115,7 @@ - + @@ -11163,7 +11186,7 @@ - + @@ -11376,7 +11399,7 @@ - + @@ -11455,7 +11478,7 @@ - + - + @@ -11622,7 +11645,7 @@ - + + @@ -11894,7 +11917,7 @@ - + - + @@ -12251,10 +12274,10 @@ - + + - - + @@ -13397,7 +13420,7 @@ - + @@ -13421,7 +13444,7 @@ - + @@ -13471,7 +13494,7 @@ - + @@ -13702,7 +13725,7 @@ - + @@ -13826,7 +13849,7 @@ - + @@ -14104,10 +14127,10 @@ - + + - @@ -14271,7 +14294,7 @@ - + 8765230123 (?: - 658[2-9]\d\d| + 658(?: + 2(?: + [0-8]\d| + 9[0-46-9] + )| + [3-9]\d\d + )| 876(?: 5(?: - 0[12]| + 02| 1[0-468]| 2[35]| 63 @@ -14335,26 +14364,29 @@ 8762101234 - 876(?: - (?: - 2[14-9]| - [348]\d - )\d| - 5(?: - 0[3-9]| - 17| - [2-57-9]\d| - 6[0-24-9] - )| - 7(?: - 0[07]| - 7\d| - 8[1-47-9]| - 9[0-36-9] - )| - 9(?: - [01]9| - 9[0579] + (?: + 658295| + 876(?: + (?: + 2[14-9]| + [348]\d + )\d| + 5(?: + 0[13-9]| + 17| + [2-57-9]\d| + 6[0-24-9] + )| + 7(?: + 0[07]| + 7\d| + 8[1-47-9]| + 9[0-36-9] + )| + 9(?: + [01]9| + 9[0579] + ) ) )\d{4} @@ -14397,7 +14429,7 @@ - + @@ -14575,7 +14607,7 @@ - + @@ -14725,135 +14757,28 @@ $1-$2-$3 - - - 2(?: - [34]7| - [56]9| - 74| - 9[14-79] - )| - 82[0367]| - 993 - - - 2(?: - [34]7| - [56]9| - 74| - 9(?: - 1[02-689]| - [4-79] - ) - )| - 82[0367]| - 993[0-25-9] - - - 2(?: - [34]7| - 59(?: - [02-8]| - 1[0-689]| - 9[0-8] - )| - 69| - 74| - 9(?: - 1[02-689]| - [4-79] - ) - )| - 82[0367]| - 993[0-25-9] - + + 60 $1-$2-$3 - + - 2(?: - 2[12]| - 3[0-269]| - 4[59]| - 5[0-468]| - 62| - 7[1-35]| - 8[16]| - 9[0238] - )| + [36]| 4(?: - 2[1-57]| - 3[0-57]| - [45]| - 6[28]| - 7[259]| - 8[1-9]| - 9[29] - )| - 7(?: - 2[02-46-9]| - 34| - [58]| - 6[0249]| - 7[57]| - 9[2-6] - )| - 9(?: - 4[15]| - 9[12489] + 2[09]| + 7[01] ) - 2(?: - 2[12]| - 3[0-269]| - 4[59]| - 5(?: - [04][01]| - [1-3]| - [68]1 - )| - 62| - 7[1-35]| - 8[16]| - 9(?: - [028]| - 3[015-9] - ) - )| + [36]| 4(?: 2(?: - [13-57]| - 21 + 0| + 9[02-69] )| - 3[0-57]| - [45]| - 6[28]| 7(?: - 2| - [59][019] - )| - 8[1-9]| - 9[29] - )| - 7(?: - 2[02-46-9]| - 34| - [58]| - 6[0249]| - 7[57]| - 9(?: - [23]| - 4[0-59]| - 5[01569]| - 6[0167] - ) - )| - 9(?: - 4[15]| - 9(?: - [1289]| - 4[0178] + 0[019]| + 1 ) ) @@ -14869,17 +14794,22 @@ 9[69] )| 2(?: - 2[37]| - 5[5-9]| - 64| - 78| - 8[39]| - 91 + 2[1-37]| + 3[0-269]| + 4[59]| + 5| + 6[24]| + 7[1-358]| + 8[1369]| + 9[0-38] )| 4(?: - 2[2689]| - 64| - 7[347] + [28][1-9]| + 3[0-57]| + [45]| + 6[248]| + 7[2-579]| + 9[29] )| 5(?: 2| @@ -14889,7 +14819,14 @@ 8[02389]| 9[0-389] )| - 60| + 7(?: + 2[02-46-9]| + 34| + [58]| + 6[0249]| + 7[57]| + 9[2-6] + )| 8(?: 2[124589]| 3[279]| @@ -14901,11 +14838,12 @@ )| 9(?: [23][1-9]| + 4[15]| 5[138]| 6[1-3]| 7[156]| 8[189]| - 93 + 9[1-489] ) @@ -14921,48 +14859,70 @@ )| 2(?: 2(?: - 3[014-9]| - 7 + [127]| + 3[014-9] )| + 3[0-269]| + 4[59]| 5(?: + [0468][01]| + [1-3]| 5[0-69]| - [68]0| - 7[015-9]| - 9 + 9[19] + )| + 62| + 7(?: + [1-35]| + 8[0189] )| - 78[0189]| 8(?: + [16]| 3[0134]| 9[0-5] )| - 917 + 9(?: + [028]| + 17 + ) )| 4(?: 2(?: - 20| - 6| - 8[014-6]| - 9[178] + [13-79]| + 2[01]| + 8[014-6] )| - 64| - 7[347] + 3[0-57]| + [45]| + 6[248]| + 7[2-47]| + 8[1-9] )| 5(?: 2| 3[045]| 4[0-369]| - 5[29]| 8[02389]| 9[0-3] )| - 60| + 7(?: + 2[02-46-9]| + 34| + [58]| + 6[0249]| + 7[57]| + 9(?: + [23]| + 4[0-59]| + 5[01569]| + 6[0167] + ) + )| 8(?: 2(?: [1258]| 4[0-39]| 9[0-2469] )| - 3[29]| 49| 6(?: [0-24]| @@ -14974,17 +14934,32 @@ )| 9(?: [23][1-9]| + 4[15]| 5[138]| 6[1-3]| 7[156]| 8[189]| - 93[34] + 9(?: + [1289]| + 3[34]| + 4[0178] + ) )| + (?: + 49| + 55| + 83 + )[29]| (?: 264| 837 )[016-9]| + 2(?: + 57| + 93 + )[015-9]| (?: + 47[59]| 59[89]| 8(?: 6[68]| @@ -15004,31 +14979,47 @@ 9[69] )| 2(?: - (?: - 2| - 91 - )7| + 2[127]| + 3[0-269]| + 4[59]| 5(?: + [0468][01]| + [1-3]| 5[0-69]| - [68]0| - 7[015-9]| - 9 + 9(?: + 17| + 99 + ) + )| + 6(?: + 2| + 4[016-9] + )| + 7(?: + [1-35]| + 8[0189] )| - 64[016-9]| - 78[0189]| 8(?: + [16]| 3[0134]| 9[0-5] + )| + 9(?: + [028]| + 17 ) )| 4(?: 2(?: - 20| - 6| + [13-79]| + 2[01]| 8[014-6] )| - 64| - 7[347] + 3[0-57]| + [45]| + 6[248]| + 7[2-47]| + 9[29] )| 5(?: 2| @@ -15038,16 +15029,24 @@ 8[02389]| 9[0-3] )| - 60| + 7(?: + 2[02-46-9]| + 34| + [58]| + 6[0249]| + 7[57]| + 9(?: + [23]| + 4[0-59]| + 5[01569]| + 6[0167] + ) + )| 8(?: 2(?: [1258]| 4[0-39]| - 9(?: - [0169]| - 2[1-9]| - 4[1-3] - ) + 9[0169] )| 3(?: [29]| @@ -15063,32 +15062,48 @@ [0-389]| 5[23] )| - 6[01]| + 6(?: + [01]| + 9[178] + )| 9[0145] )| 7[0-468]| 8[68] )| 9(?: - [23][1-9]| + 4[15]| 5[138]| - 6[1-3]| 7[156]| 8[189]| - 93(?: - 31| - 4[357] + 9(?: + [1289]| + 3(?: + 31| + 4[357] + )| + 4[0178] ) )| (?: - 42| - 866 - )9[178]| + 8294| + 96 + )[1-3]| + 2(?: + 57| + 93 + )[015-9]| (?: 223| 8699 )[014-9]| (?: + 48| + 8292| + 9[23] + )[1-9]| + (?: + 47[59]| 59[89]| 8(?: 68| @@ -15108,31 +15123,49 @@ 9[69] )| 2(?: - (?: - 2| - 91 - )7| + 2[127]| + 3[0-269]| + 4[59]| 5(?: + [0468][01]| + [1-3]| 5[0-69]| - [68]0| 7[015-9]| - 9 + 9(?: + 17| + 99 + ) + )| + 6(?: + 2| + 4[016-9] + )| + 7(?: + [1-35]| + 8[0189] )| - 64[016-9]| - 78[0189]| 8(?: + [16]| 3[0134]| 9[0-5] + )| + 9(?: + [028]| + 17| + 3[015-9] ) )| 4(?: 2(?: - 20| - 6| + [13-79]| + 2[01]| 8[014-6] )| - 64| - 7[347] + 3[0-57]| + [45]| + 6[248]| + 7[2-47]| + 9[29] )| 5(?: 2| @@ -15142,7 +15175,19 @@ 8[02389]| 9[0-3] )| - 60| + 7(?: + 2[02-46-9]| + 34| + [58]| + 6[0249]| + 7[57]| + 9(?: + [23]| + 4[0-59]| + 5[01569]| + 6[0167] + ) + )| 8(?: 2(?: [1258]| @@ -15170,31 +15215,36 @@ [0-389]| 5[23] )| - 6[01]| + 6(?: + [01]| + 9[178] + )| 9[0145] )| 7[0-468]| 8[68] )| 9(?: + 4[15]| 5[138]| 6[1-3]| 7[156]| 8[189]| - 93(?: - 31| - 4[357] + 9(?: + [1289]| + 3(?: + 31| + 4[357] + )| + 4[0178] ) )| - (?: - 42| - 866 - )9[178]| (?: 223| 8699 )[014-9]| (?: + 48| 829(?: 2| 66 @@ -15202,6 +15252,7 @@ 9[23] )[1-9]| (?: + 47[59]| 59[89]| 8(?: 68| @@ -15211,26 +15262,6 @@ $1-$2-$3 - - - [36]| - 4(?: - 2[09]| - 7[01] - ) - - - [36]| - 4(?: - 2[09]| - 7(?: - 0[019]| - 1 - ) - ) - - $1-$2-$3 - [14]| @@ -15448,7 +15479,7 @@ - + @@ -15490,7 +15521,7 @@ (?: 4[245]| - 5[1-79]| + 5[2-79]| 6[01457-9] )\d{5,7}| (?: @@ -15500,6 +15531,7 @@ )\d{7}| (?: [24]0| + 51| 66 )\d{6,7} @@ -15529,7 +15561,7 @@ - + @@ -15624,7 +15656,10 @@ 0[0-35]| 2\d )| - 5[0-24-7]\d| + 5(?: + 0[0-57-9]| + [124-7]\d + )| 7(?: [07]\d| 55 @@ -15642,7 +15677,7 @@ - + @@ -15759,7 +15794,7 @@ - + @@ -15846,7 +15881,7 @@ - + @@ -15879,7 +15914,7 @@ - + - + @@ -16024,7 +16059,7 @@ - + + @@ -16359,7 +16394,7 @@ - + - + @@ -16649,7 +16684,7 @@ - + @@ -16721,7 +16756,7 @@ - + @@ -16800,7 +16835,7 @@ - + - + @@ -17020,7 +17055,7 @@ - + @@ -17080,7 +17115,7 @@ - + @@ -17152,7 +17187,7 @@ - + @@ -17187,7 +17222,7 @@ - + @@ -17284,7 +17319,7 @@ - + 20[2-689] $1 $2 $3 - + 2(?: @@ -17374,9 +17409,7 @@ $1 $2 $3 $4 $5 - + [3-57]| @@ -17475,7 +17508,7 @@ - + @@ -17523,7 +17556,7 @@ - + + @@ -17655,7 +17688,7 @@ 8[0-247-9] )| 7(?: - 0[067]| + 0[06-8]| 6[1267]| 7[017] ) @@ -17680,7 +17713,7 @@ - + + @@ -17857,7 +17890,7 @@ - + + @@ -18006,7 +18039,7 @@ - + @@ -18053,7 +18086,7 @@ - + @@ -18104,7 +18137,7 @@ - + - + @@ -18286,7 +18319,7 @@ - + @@ -18630,7 +18663,7 @@ - + @@ -18731,7 +18764,7 @@ - + @@ -18781,7 +18814,7 @@ - + @@ -18901,7 +18934,7 @@ - + @@ -18957,7 +18990,7 @@ - + @@ -19001,7 +19034,7 @@ - + - + @@ -19164,7 +19197,7 @@ - + - + - + @@ -19410,7 +19443,7 @@ - + @@ -19641,7 +19674,7 @@ - + - + @@ -19886,7 +19919,7 @@ - + @@ -20026,7 +20059,7 @@ - + @@ -20080,7 +20113,7 @@ - + @@ -20148,7 +20181,7 @@ - + - + - + @@ -20362,7 +20395,7 @@ - + - - + + - 01234 + 02000 - 8100[7-9]\d{3}| (?: - 0| + 0[2-9]| 81(?: - 01| - 5\d + 0(?: + 0[7-9]| + 1\d + )| + 5\d\d ) - )\d{4} + )\d{3} @@ -20664,7 +20699,7 @@ - + @@ -20729,7 +20764,7 @@ - + @@ -20765,7 +20800,7 @@ - + @@ -20795,7 +20830,7 @@ - + @@ -20916,7 +20951,7 @@ - + @@ -20979,7 +21014,7 @@ - + @@ -21134,7 +21169,7 @@ - + @@ -21208,7 +21243,7 @@ - + @@ -21249,7 +21284,7 @@ - + @@ -21329,7 +21364,7 @@ - + @@ -21421,10 +21456,6 @@ $1 $2 - - 2 - $1 $2 $3 - [3-7]| @@ -21448,41 +21479,42 @@ - 1800\d{7,9}| (?: - 2| - [89]\d{4} - )\d{5}| - [2-8]\d{8}| - [28]\d{7} + 1800| + 8 + )\d{7,9}| + 2\d{5}(?: + \d{2} + )?| + (?: + [3-7]| + 9\d + )\d{8} + followed by 6 digits, and 8842 by only 4. --> 21234567 - (?: - (?: - 2[3-8]| - 3[2-68]| - 4[2-9]| - 5[2-6]| - 6[2-58]| - 7[24578] - )\d{3}| - 88(?: - 22\d\d| - 42 - ) - )\d{4}| 2\d{5}(?: \d{2} )?| - 8[2-8]\d{7} + 88(?: + 22\d\d| + 42 + )\d{4}| + 88\d{7}| + (?: + 3[2-68]| + 4[2-9]| + 5[2-6]| + 6[2-58]| + 7[24578]| + 8[2-7] + )\d{7} @@ -21514,7 +21546,7 @@ - + - + @@ -21961,7 +21993,7 @@ - + @@ -22002,7 +22034,7 @@ - + - + @@ -22133,7 +22165,7 @@ - + @@ -22244,7 +22276,7 @@ - + @@ -22313,7 +22345,7 @@ - + @@ -22454,7 +22486,7 @@ - + @@ -22509,7 +22541,7 @@ - + @@ -22581,7 +22613,7 @@ - + @@ -22686,7 +22718,7 @@ - + - + @@ -22983,7 +23015,7 @@ - + @@ -23044,7 +23076,7 @@ - + - + @@ -23209,7 +23241,7 @@ - + - + @@ -23303,7 +23335,7 @@ - + @@ -23584,7 +23616,7 @@ - + - + - + - + @@ -23900,16 +23932,18 @@ - 01234 + 02000 - 8100[7-9]\d{3}| (?: - 0| + 0[2-9]| 81(?: - 01| - 5\d + 0(?: + 0[7-9]| + 1\d + )| + 5\d\d ) - )\d{4} + )\d{3} @@ -23919,7 +23953,7 @@ - + - + @@ -24096,7 +24130,7 @@ - + + @@ -24244,7 +24278,7 @@ - + + @@ -24426,7 +24460,7 @@ - + @@ -24456,7 +24490,7 @@ - + @@ -24492,7 +24526,7 @@ - + @@ -24551,7 +24585,7 @@ - + @@ -24630,7 +24664,7 @@ - + @@ -24689,7 +24723,7 @@ - + @@ -24742,7 +24776,7 @@ - + @@ -24756,7 +24790,7 @@ - + - + - + @@ -24932,7 +24966,7 @@ - + @@ -25018,7 +25052,7 @@ - + - + @@ -25119,7 +25153,7 @@ - + @@ -25183,7 +25217,7 @@ - + @@ -25255,7 +25289,7 @@ - + @@ -25329,7 +25363,7 @@ - + @@ -25397,7 +25431,7 @@ - + @@ -25564,7 +25598,7 @@ - + - + @@ -25704,7 +25738,7 @@ - + @@ -25819,7 +25853,7 @@ - + @@ -25900,7 +25934,7 @@ - + + 6[12][29]| - [89]0| (?: 3[1-8]| 4[136-8]| @@ -25928,7 +25961,6 @@ 6[12][29]| - [89]0| (?: 35| 4[1378]| @@ -25946,55 +25978,65 @@ $1 $2 $3 - - + + - 3[1-8]| - 4(?: - [1367]| - [45][6-9]| - 8[4-6] - )| + 4[45][0-5]| 5(?: - [1-5]| - 6[0135689]| - 7[4-6] + 0| + 6[37] )| 6(?: - [12][3-7]| - [459] - ) + [12][018]| + [36-8] + )| + 7| + 89| + 9[1-9]| + (?: + 48| + 57 + )[0137-9] - 3[1-8]| - 4(?: - [1367]| - [45][6-9]| - 8[4-6] - )| + 4[45][0-5]| 5(?: - [1-5]| + 0| 6(?: - [015689]| - 3[02389] - )| - 7[4-6] + 3[14-7]| + 7 + ) )| 6(?: - [12][3-7]| - [459] - ) + [12][018]| + [36-8] + )| + 7| + 89| + 9[1-9]| + (?: + 48| + 57 + )[0137-9] + $1 $2 $3 + + + + [3-6] $1 $2 - - - [3-9] + + + [89] $1 $2 $3 - [3-9]\d{8} + + [89]\d{9}| + [3-9]\d{8} + + - 391234567 + 501234567 (?: - 39| 50| 6[36-8]| 7[1-3]| @@ -26031,16 +26069,16 @@ - + 800123456 - 800\d{6} + 800[1-8]\d{5,6} - + 900212345 - 900[2-49]\d{5} + 900[239]\d{5,6} + @@ -26147,7 +26185,8 @@ - + + - - + @@ -26469,7 +26507,7 @@ - + @@ -26490,6 +26528,19 @@ 669050123 + 78(?: + 1(?: + 13| + 2[02]| + 50 + )| + 2(?: + 10| + 2[139]| + 98 + )| + 77[01] + )\d{4}| (?: 6(?: 1(?: @@ -26826,13 +26877,13 @@ - + + - @@ -26937,7 +26988,7 @@ - + - + @@ -27100,7 +27151,7 @@ - + - + - + @@ -27483,7 +27534,7 @@ - + @@ -27550,7 +27601,7 @@ - + @@ -27601,7 +27652,7 @@ - + @@ -27663,7 +27714,7 @@ - + @@ -27718,7 +27769,7 @@ - + @@ -27767,7 +27818,7 @@ - + @@ -27819,7 +27870,7 @@ - + @@ -27916,7 +27967,7 @@ - + @@ -27973,7 +28024,7 @@ - + @@ -28316,8 +28367,8 @@ 712345678 7(?: - [13][2-9]| - 7[1-9]| + 1[2-9]| + [37][1-9]| 8[2-7] )\d{6} diff --git a/resources/ShortNumberMetadata.xml b/resources/ShortNumberMetadata.xml index 212576287..5b3be6861 100644 --- a/resources/ShortNumberMetadata.xml +++ b/resources/ShortNumberMetadata.xml @@ -64,7 +64,7 @@ - + @@ -91,7 +91,7 @@ - + - + @@ -154,7 +154,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -261,7 +261,7 @@ - + @@ -300,7 +300,7 @@ - + @@ -399,7 +399,7 @@ - + @@ -440,7 +440,7 @@ - + @@ -464,7 +464,7 @@ - + @@ -537,7 +537,7 @@ - + @@ -576,7 +576,7 @@ - + @@ -634,8 +634,7 @@ - - + + @@ -795,8 +794,7 @@ - - + @@ -829,7 +827,7 @@ - + @@ -895,7 +893,7 @@ - + @@ -951,7 +949,7 @@ - + @@ -979,7 +977,7 @@ - + @@ -1064,7 +1062,7 @@ - + @@ -1197,7 +1195,7 @@ - + @@ -1222,7 +1220,7 @@ - + @@ -1281,7 +1279,7 @@ - + @@ -1364,7 +1362,7 @@ - + @@ -1434,7 +1432,7 @@ - + @@ -1472,7 +1470,7 @@ - + @@ -1496,7 +1494,7 @@ - + @@ -1535,7 +1533,7 @@ - + @@ -1559,7 +1557,7 @@ - + @@ -1596,7 +1594,7 @@ - + @@ -1644,7 +1642,7 @@ - + @@ -1816,7 +1814,7 @@ - + @@ -1840,7 +1838,7 @@ - + @@ -1878,7 +1876,7 @@ - + @@ -1922,7 +1920,7 @@ - + @@ -1967,7 +1965,7 @@ - + @@ -2006,7 +2004,7 @@ - + @@ -2070,8 +2068,7 @@ - - + [01]\d\d @@ -2104,7 +2101,7 @@ - + @@ -2169,7 +2166,7 @@ - + @@ -2212,7 +2209,7 @@ - + 1\d\d @@ -2239,7 +2236,7 @@ - + @@ -2368,7 +2365,7 @@ - + @@ -2420,7 +2417,7 @@ - + @@ -2445,7 +2442,7 @@ - + @@ -2729,7 +2726,7 @@ - + @@ -2782,7 +2779,7 @@ - + @@ -2846,7 +2843,7 @@ - + + @@ -3060,7 +3057,7 @@ - + @@ -3096,7 +3093,7 @@ - + @@ -3120,7 +3117,7 @@ - + @@ -3168,8 +3165,7 @@ - - + [01]\d\d @@ -3202,7 +3198,7 @@ - + @@ -3258,7 +3254,7 @@ - + @@ -3331,7 +3327,7 @@ - + @@ -3380,7 +3376,7 @@ - + @@ -3403,7 +3399,7 @@ - + @@ -3459,7 +3455,7 @@ - + @@ -3502,7 +3498,7 @@ - + @@ -3534,7 +3530,7 @@ - + @@ -3573,7 +3569,7 @@ - + @@ -3616,7 +3612,7 @@ - + @@ -4012,7 +4008,7 @@ - + @@ -4068,8 +4064,7 @@ - - + @@ -4107,7 +4102,7 @@ - + @@ -4176,7 +4171,7 @@ - + @@ -4341,7 +4336,7 @@ - + @@ -4387,8 +4382,7 @@ - - + @@ -4434,7 +4428,7 @@ - + @@ -4487,7 +4481,7 @@ - + @@ -4515,7 +4509,7 @@ - + @@ -4556,7 +4550,7 @@ - + @@ -4587,7 +4581,7 @@ - + @@ -4755,7 +4749,7 @@ - + @@ -4801,7 +4795,7 @@ - + [1-46-9]\d{2,5} @@ -4963,7 +4957,7 @@ - + @@ -5002,7 +4996,7 @@ - + @@ -5066,7 +5060,7 @@ - + @@ -5091,8 +5085,7 @@ - - + @@ -5139,7 +5132,7 @@ - + @@ -5202,7 +5195,7 @@ - + @@ -5324,7 +5317,7 @@ - + @@ -5347,7 +5340,7 @@ - + @@ -5387,7 +5380,7 @@ - + 4\d{4} @@ -5412,7 +5405,7 @@ - + @@ -5436,7 +5429,7 @@ - + @@ -5502,7 +5495,7 @@ - + @@ -5556,7 +5549,7 @@ - + @@ -5580,7 +5573,7 @@ - + @@ -5604,7 +5597,7 @@ - + @@ -5661,7 +5654,7 @@ - + @@ -5786,7 +5779,7 @@ - + @@ -5828,7 +5821,7 @@ - + @@ -5921,7 +5914,7 @@ - + @@ -5964,7 +5957,7 @@ - + @@ -6023,7 +6016,7 @@ - + @@ -6075,7 +6068,7 @@ - + @@ -6159,7 +6152,7 @@ - + @@ -6217,8 +6210,7 @@ - - + @@ -6266,7 +6258,7 @@ - + @@ -6658,7 +6650,7 @@ - + [1479]\d{2,4} @@ -6726,7 +6718,7 @@ - + @@ -6866,7 +6858,7 @@ - + @@ -6957,7 +6949,7 @@ - + @@ -7093,8 +7085,7 @@ - - + @@ -7155,7 +7146,7 @@ - + @@ -7203,7 +7194,7 @@ - + @@ -7283,7 +7274,7 @@ - + @@ -7307,7 +7298,7 @@ - + @@ -7473,7 +7464,7 @@ - + @@ -7512,7 +7503,7 @@ - + @@ -7563,7 +7554,7 @@ - + @@ -7621,7 +7612,7 @@ - + @@ -7645,7 +7636,7 @@ - + @@ -7688,7 +7679,7 @@ - + @@ -7720,7 +7711,7 @@ - + @@ -7800,7 +7791,7 @@ - + @@ -7836,7 +7827,7 @@ - + @@ -7859,7 +7850,7 @@ - + @@ -7925,7 +7916,7 @@ - + @@ -7950,7 +7941,7 @@ - + @@ -7995,7 +7986,7 @@ - + @@ -8037,7 +8028,7 @@ - + @@ -8082,7 +8073,7 @@ - + @@ -8106,7 +8097,7 @@ - + @@ -8173,7 +8164,7 @@ - + @@ -8198,7 +8189,7 @@ - + @@ -8274,7 +8265,7 @@ - + @@ -8320,7 +8311,7 @@ - + @@ -8400,7 +8391,7 @@ - + 1\d\d @@ -8426,7 +8417,7 @@ - + @@ -8466,7 +8457,7 @@ - + @@ -8505,7 +8496,7 @@ - + @@ -8564,7 +8555,7 @@ - + @@ -8622,7 +8613,7 @@ - + @@ -8647,7 +8638,7 @@ - + @@ -8686,7 +8677,7 @@ - + @@ -8712,7 +8703,7 @@ - + @@ -8750,7 +8741,7 @@ - + @@ -8888,7 +8879,7 @@ - + @@ -8911,7 +8902,7 @@ - + @@ -8934,7 +8925,7 @@ - + @@ -8957,7 +8948,7 @@ - + @@ -8982,7 +8973,7 @@ - + @@ -9022,7 +9013,7 @@ - + @@ -9047,7 +9038,7 @@ - + @@ -9086,7 +9077,7 @@ - + @@ -9134,7 +9125,7 @@ - + @@ -9169,7 +9160,7 @@ - + [14]\d{2,3} @@ -9226,7 +9217,7 @@ - + @@ -9277,7 +9268,7 @@ - + @@ -9351,7 +9342,7 @@ - + @@ -9454,7 +9445,7 @@ - + @@ -9496,7 +9487,7 @@ - + @@ -9530,7 +9521,7 @@ - + @@ -9613,7 +9604,7 @@ - + @@ -9680,7 +9671,7 @@ - + @@ -9722,7 +9713,7 @@ - + @@ -9764,7 +9755,7 @@ - + @@ -9813,7 +9804,7 @@ - + @@ -9894,8 +9885,7 @@ - - + @@ -9959,7 +9949,7 @@ - + @@ -9998,7 +9988,7 @@ - + @@ -10028,7 +10018,7 @@ - + @@ -10061,7 +10051,7 @@ - + @@ -10131,7 +10121,7 @@ - + @@ -10154,7 +10144,7 @@ - + @@ -10180,7 +10170,7 @@ - + @@ -10219,7 +10209,7 @@ - + @@ -10243,7 +10233,7 @@ - + @@ -10286,7 +10276,7 @@ - + @@ -10318,7 +10308,7 @@ - + @@ -10366,7 +10356,7 @@ - + @@ -10438,7 +10428,7 @@ - + @@ -10473,7 +10463,7 @@ - + @@ -10498,7 +10488,7 @@ - + @@ -10534,7 +10524,7 @@ - + @@ -10579,7 +10569,7 @@ - + @@ -10602,7 +10592,7 @@ - + [19]\d\d @@ -10633,7 +10623,7 @@ - + [129]\d{2,4} @@ -10662,7 +10652,7 @@ - + @@ -10701,7 +10691,7 @@ - + @@ -10783,7 +10773,7 @@ - + [19]\d{1,5} @@ -10814,7 +10804,7 @@ - + @@ -10856,7 +10846,7 @@ - + @@ -10879,7 +10869,7 @@ - + @@ -10982,7 +10972,7 @@ - + [127-9]\d\d @@ -11026,7 +11016,7 @@ - + [19]\d{2,3} @@ -11064,7 +11054,7 @@ - + @@ -11087,7 +11077,7 @@ - + @@ -11217,7 +11207,7 @@ - + [179]\d{2,4} @@ -11256,7 +11246,7 @@ - + [19]\d{2,3} @@ -11295,7 +11285,7 @@ - + @@ -11374,8 +11364,7 @@ - - + @@ -11399,7 +11388,7 @@ - + @@ -11461,7 +11450,7 @@ - + @@ -11516,7 +11505,7 @@ - + @@ -11539,7 +11528,7 @@ - + @@ -11628,7 +11617,7 @@ - + [57-9]\d\d @@ -11668,7 +11657,7 @@ - + 1\d{2,3} @@ -11690,7 +11679,7 @@ - + @@ -11717,7 +11706,7 @@ - + @@ -11759,7 +11748,7 @@ - + @@ -11784,7 +11773,7 @@ - + @@ -11808,7 +11797,7 @@ - + @@ -11833,7 +11822,7 @@ - + @@ -11873,7 +11862,7 @@ - + @@ -11896,7 +11885,7 @@ - + @@ -11946,7 +11935,7 @@ - + @@ -12119,7 +12108,7 @@ - + @@ -12157,7 +12146,7 @@ - + 1\d\d @@ -12187,7 +12176,7 @@ - + @@ -12213,7 +12202,7 @@ - + @@ -12237,7 +12226,7 @@ - + @@ -12283,7 +12272,7 @@ - + [1-9]\d{2,4} @@ -12553,7 +12542,7 @@ - + @@ -12576,7 +12565,7 @@ - + @@ -12603,24 +12592,63 @@ - + - 1\d\d + 1\d{2,3} - - 110 - 11[029] + + 104 + + 1(?: + 0[4-6]| + 1[02389]| + 6[5-8]| + 9(?: + 1[0-29]| + 22| + 5[057]| + 68| + 8[05]| + 9[15689] + ) + ) + - + 110 - 11[029] + + 1(?: + 1[0289]| + 92\d + ) + + + + 165 + + 1(?: + 65| + 9(?: + 19| + 50| + 85| + 98 + ) + ) + + + + + 105 + 10[56] + 110 @@ -12628,7 +12656,7 @@ - + @@ -12677,7 +12705,7 @@ - + @@ -12750,7 +12778,7 @@ - + @@ -12773,7 +12801,7 @@ - + @@ -12949,7 +12977,7 @@ - + @@ -12993,7 +13021,7 @@ - + @@ -13060,7 +13088,7 @@ - + @@ -13083,7 +13111,7 @@ - + @@ -13123,7 +13151,7 @@ - + @@ -13166,7 +13194,7 @@ - + @@ -13206,7 +13234,7 @@ - + @@ -13230,7 +13258,7 @@ - + @@ -13254,7 +13282,7 @@ - + @@ -13277,7 +13305,7 @@ - + @@ -13301,7 +13329,7 @@ - + @@ -13352,7 +13380,7 @@ - + @@ -13390,7 +13418,7 @@ - + @@ -13416,7 +13444,7 @@ - + 1\d\d? @@ -13455,7 +13483,7 @@ - + @@ -13565,7 +13593,7 @@ - + @@ -13597,7 +13625,7 @@ - + diff --git a/resources/carrier/en/1.txt b/resources/carrier/en/1.txt index 8daaef32b..852e274b6 100644 --- a/resources/carrier/en/1.txt +++ b/resources/carrier/en/1.txt @@ -125,6 +125,7 @@ 16492|C&W 16493|Digicel 164943|Islandcom +1658295|Cable & Wireless 167148|GTA 167174|PTI PACIFICA 167183|i CAN_GSM @@ -457,6 +458,7 @@ 1869764|Digicel 1869765|Digicel 1869766|Digicel +1876210|Cable & Wireless 187624|Digicel 187625|Digicel 187626|Digicel @@ -468,6 +470,18 @@ 187628|Digicel 187629|Digicel 187630|Digicel +1876310|Cable & Wireless +1876312|Cable & Wireless +1876313|Cable & Wireless +1876314|Cable & Wireless +1876315|Cable & Wireless +1876316|Cable & Wireless +1876317|Cable & Wireless +1876318|Cable & Wireless +1876319|Cable & Wireless +187632|Cable & Wireless +187633|Cable & Wireless +187634|Cable & Wireless 187635|Digicel 187636|Digicel 187637|Digicel @@ -491,6 +505,7 @@ 187647|Digicel 187648|Digicel 187649|Digicel +1876501|Cable & Wireless 1876503|Digicel 1876504|Digicel 1876505|Digicel @@ -498,7 +513,10 @@ 1876507|Digicel 1876508|Digicel 1876509|Digicel +1876517|Cable & Wireless 187652|Digicel +187653|Cable & Wireless +187654|Cable & Wireless 1876550|Digicel 1876551|Digicel 1876552|Digicel @@ -520,12 +538,48 @@ 187657|Digicel 187658|Digicel 187659|Digicel +1876700|Cable & Wireless +1876707|Cable & Wireless +187677|Cable & Wireless +1876781|Cable & Wireless +1876782|Cable & Wireless +1876783|Cable & Wireless +1876784|Cable & Wireless +1876787|Cable & Wireless +1876788|Cable & Wireless +1876789|Cable & Wireless +1876790|Cable & Wireless +1876791|Cable & Wireless +1876792|Cable & Wireless +1876793|Cable & Wireless +1876796|Cable & Wireless +1876797|Cable & Wireless +1876798|Cable & Wireless +1876799|Cable & Wireless +187680|Cable & Wireless +1876810|Cable & Wireless +1876812|Cable & Wireless +1876813|Cable & Wireless +1876814|Cable & Wireless +1876815|Cable & Wireless +1876816|Cable & Wireless +1876817|Cable & Wireless +1876818|Cable & Wireless +1876819|Cable & Wireless +187682|Cable & Wireless +187683|Cable & Wireless 187684|Digicel 187685|Digicel 187686|Digicel 187687|Digicel 187688|Digicel 187689|Digicel +1876909|Cable & Wireless +1876919|Cable & Wireless +1876990|Cable & Wireless +1876995|Cable & Wireless +1876997|Cable & Wireless +1876999|Cable & Wireless 1939201|CENTENNIAL 1939212|CENTENNIAL 1939214|CENTENNIAL diff --git a/resources/carrier/en/380.txt b/resources/carrier/en/380.txt index b29e7dea7..e87fd0207 100644 --- a/resources/carrier/en/380.txt +++ b/resources/carrier/en/380.txt @@ -16,7 +16,6 @@ # Telesystems of Ukraine is commonly known as PEOPLEnet. -38039|Golden Telecom 38050|Vodafone 38063|lifecell 38066|Vodafone diff --git a/resources/carrier/en/65.txt b/resources/carrier/en/65.txt index 852552f17..819c0d53f 100644 --- a/resources/carrier/en/65.txt +++ b/resources/carrier/en/65.txt @@ -225,8 +225,12 @@ 658735|SingTel 658736|SingTel 658738|M1 +658761|TPG 658765|StarHub 658766|M1 +658773|SingTel +658774|SingTel +658775|SingTel 658777|M1 658778|M1 658781|M1 @@ -237,29 +241,33 @@ 658788|M1 658789|StarHub 658790|StarHub +658796|TPG 658797|M1 658798|SingTel 658799|SingTel 658800|M1 658809|StarHub +658810|TPG 658811|M1 658812|M1 658813|M1 658816|M1 658818|M1 -658820|M1 -658821|M1 -658822|M1 -658823|M1 -658826|M1 -658828|M1 +658819|TPG +65882|M1 +658824|TPG +658825|TPG +658827|TPG 658829|StarHub +65883|TPG 658830|StarHub 658831|StarHub 658833|M1 658838|M1 +65884|TPG 658844|M1 658848|M1 +65885|TPG 658855|M1 658858|M1 658862|M1 diff --git a/resources/carrier/en/996.txt b/resources/carrier/en/996.txt index d83d31fe1..6f8bbbd80 100644 --- a/resources/carrier/en/996.txt +++ b/resources/carrier/en/996.txt @@ -15,6 +15,8 @@ 99620|Aktel 99622|Sky mobile 99650|Nur Telecom +996503|7 Mobile +996504|7 Mobile 99651|Katel 99654|Aktel 99655|ALFA Telecom diff --git a/resources/carrier/uk/380.txt b/resources/carrier/uk/380.txt index 5a5ab34f1..88de297c8 100644 --- a/resources/carrier/uk/380.txt +++ b/resources/carrier/uk/380.txt @@ -17,7 +17,6 @@ # Telesystems of Ukraine is commonly known as PEOPLEnet. -38039|Голден Телеком 38050|Vodafone Україна 38063|lifecell 38066|Vodafone Україна