public function checkUkPostcode($postcode);
	$pattern = "/^";
	// Add the valid UK prefixes
	$pattern .= "(";
	$pattern .= "AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|DA|DD|DE|DG|DH|DL|DN|DT|DY|E|EC|";
	$pattern .= "EH|EN|EX|FK|FY|G|GL|GU|HA|HD|HG|HP|HR|HS|HU|HX|IG|IP|IV|KA|KT|KW|KY|L|LA|LD|LE|LL|LN|LS|LU|M|ME|";
	$pattern .= "MK|ML|N|NE|NG|NN|NP|NR|NW|OL|OX|PA|PE|PH|PL|PO|PR|RG|RH|RM|S|SA|SE|SG|SK|SL|SM|SN|SO|SP|SR|SS|ST|";
	$pattern .= "SW|SY|TA|TD|TF|TN|TQ|TR|TS|TW|UB|W|WA|WC|WD|WF|WN|WR|WS|WV|YO|ZE";
	
	// Add the crown dependences who are not really part of the UK but actually are.
	$pattern .= "|GY|IM|JE";
	
	$pattern .=")";
	
	// Allow something like this: 9X or 99
	$pattern .= "([0-9]{1}[ABCDEFGHJKMNPRSTUVWXY]|[0-9]{1,2}){1}";
	
	// Allow a space
	$pattern .= "[\ ]";
	
	// At the end we need a single number and two letters. Notice this set of letters is not equal to the
	// one a few lines ago.
	$pattern .= "?[0-9]{1}[ABDEFGHJLNPQRSTUWXYZ]{2}";
	
	// Finish it off, being case insensitive
	$pattern .= "$/i";
	
	return preg_match($pattern, $postcode) == 0;
}