Проверка почтового индекса в Великобритании (ГБ) без регулярных выражений

Я пробовал несколько регулярных выражений, но некоторые действительные почтовые индексы иногда отклоняются.

Поиск в Интернете, Википедии и SO, я мог найти только решения для проверки регулярных выражений.

Есть ли метод проверки, который не использует регулярные выражения? На любом языке, я думаю, было бы легко портировать.

Я полагаю, что самым простым было бы сравнение с базой данных почтовых индексов, но ее необходимо периодически поддерживать и обновлять из надежного источника.

Изменить: Чтобы помочь будущим посетителям и удержать вас от публикации новых регулярных выражений, вот регулярное выражение, которое я протестировал (по состоянию на 2013-04-24) для работы со всеми почтовыми кодами в Code Point (смотрите ответ @Mikkel Løkke):

//PHP PCRE (it was on Wikipedia, it isn't there anymore; I might have modified it, don't remember).
$strPostalCode=preg_replace("/[\s]/", "", $strPostalCode);
$bValid=preg_match("/^(GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9][0-9])[0-9][ABD-HJLNP-UW-Z]{2})$/i", $strPostalCode);

Ответы на вопрос(8)

Ваш ответ на вопрос