Title: SW1A 0AA
	                Name: James
	                Date: 10/17/2011 4:56:32 PM
	                Comment: 
seems to be rejecting the following valid london postcodes:
SW1A 0AA
SW1A 0PW
SW1A 1AA
SW1A 2AA
SW1A 2AB
SW1A 2HQ
your other script accepts them
                
                
            
                
	                Title: Amended version
	                Name: John Donoghue
	                Date: 10/23/2008 5:52:56 AM
	                Comment: 
Nice work. I've slightly amended it to also match E1 and W1 outcodes, plus British Forces and overseas dependent territories.
^((([BEGLMNS][1-9]\d?)|(W[2-9])|((A[BL]|B[ABDHLNRST]|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[AEGKL-PRSTWY]|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)\d\d?)|(W1[A-HJKSTUW0-9])|(((WC[1-2])|(EC[1-4])|(SW1)|E1|W1)[ABEHMNPRVWXY]))(\s*)?([0-9][ABD-HJLNP-UW-Z]{2}))$|^(GIR\s?0AA)$|^(ASCN|BBND|BIQQ|FIQQ|PCRN|SIQQ|STHL|TDCU|TKCA)\s?1ZZ$|^(BFPO\s?\d\d?\d?)$
                
                
            
                
	                Title: E1W
	                Name: Nick English
	                Date: 10/10/2008 9:12:25 AM
	                Comment: 
The regex is rejecting E1W postcodes which seem to be valid.
                
                
            
                
	                Title: problem
	                Name: jayant
	                Date: 7/28/2008 6:09:05 AM
	                Comment: 
hi,
 i used this expression in VS 2005, and no matter what postcode i enter, its giving me error.
                
                
            
                
	                Title: problem
	                Name: jayant
	                Date: 7/28/2008 6:06:51 AM
	                Comment: 
hi,
 i used this expression in VS 2005, and no matter what postcode i enter, its giving me error.
                
                
            
                
	                Title: Amendment to anchor at end
	                Name: Vinay
	                Date: 5/25/2007 12:22:26 PM
	                Comment: 
The following is an adaptation of yours, with whitespace removed and ^,$ anchors added.
^((([BEGLMNS][1-9]\d?)|(W[2-9])|((A[BL]|B[ABDHLNRST]|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[AEGKL-PRSTWY]|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)\d\d?)|(W1[A-HJKSTUW0-9])|(((WC[1-2])|(EC[1-4])|(SW1))[ABEHMNPRVWXY]))(\s*)?([0-9][ABD-HJLNP-UW-Z]{2}))$|^(GIR\s?0AA)$
                
                
            
                
	                Title: OX18 3PDabc seems to pass, when it should not
	                Name: Vinay
	                Date: 5/25/2007 12:08:56 PM
	                Comment: 
As per title. Your regex does not terminate with a $, so there can be stuff following the postcode, which should IMO be trapped.
                
                
            
                
	                Title: Thank you (and testing notes)
	                Name: Andrew Sinclair
	                Date: 5/9/2007 9:17:13 AM
	                Comment: 
Thanks for this Howard.
I'm using this with ASP.NET 2.0 and a RegularExpressionValidator. If the validation is run client side then there seems to be an issue because Javascript has slightly different regex syntax to .NET. I found that changing [0-9][ABD-HJLNP-UW-Z]{2} to [0-9][ABD-HJLNP-UW-Z][ABD-HJLNP-UW-Z] did the trick.
As mentioned elsewhere, another gotcha is to ensure that pattern whitespace is ignored (in fact for RegularExpressionValidator you can't easily switch this on so it's best to strip out the whitespace from the pattern altogether.)
                
                
            
                
	                Title: Mr
	                Name: Bond
	                Date: 4/13/2007 6:47:31 AM
	                Comment: 
Anyone know how to modify this reg ex to accept postcodes such as E14P 7GT?
                
                
            
                
	                Title: Thanks
	                Name: Alex
	                Date: 2/19/2007 10:32:54 AM
	                Comment: 
Just wanted to say thanks.  
This works great. Only thing to note (if you didn't get it from reading the pattern!!) is that characters must be uppercase.
I've tested this with .NET 1.1 & .NET 2.0 using C# and VB.
:o)
                
                
            
                
	                Title: just perfect
	                Name: mtm
	                Date: 11/9/2006 7:38:10 AM
	                Comment: 
Works perfect with 200,000 unique UK postcodes, found 500 invalid which was expected. "Dont waste your time with this rubbish". Oh yes? In Perl just use the 'x' flag ( m/^regex$/x ) and it works fine.
                
                
            
                
	                Title: Problems with 
	                Name: Peter Bond Regular Expressions in Visual Studio
	                Date: 2/24/2006 12:31:30 PM
	                Comment: 
I can't get this to accept any UK postcodes at all.
I am using Visual Studio, should that cause a problem?
                
                
            
                
	                Title: Note to anyone using / testing
	                Name: Howard
	                Date: 4/15/2005 7:30:11 AM
	                Comment: 
PLEASE NOTE: if you wish to test or use this patterm you should tick IGNORE WHITESPACE (or remove the spaces from the pattern manually). I left them in to help anyone trying to examine or debug the pattern.
                
                
            
                
	                Title: How funny
	                Name: Howard
	                Date: 4/15/2005 7:08:55 AM
	                Comment: 
Well I managed to debug your expression by removing the first {1,2} - not sure how you can combine ? with {1,2} so I'm not surprised that Expresso rejected it.
I'd love to know why you were rude about my contribution, which I have tested, when you then posted an alternative when it's so totally, laughably useless.. here are the two main problems I can see:
1. Since when did UK postcodes permit a numeric digit in the first character?
2. It permits a fantastic array of invalid postcodes such as A999 0AA, A1AA 0AA.
Although no postcode regex can hope to validate to a real postcode, it should at least try to validate the structure and that is what mine is supposed to do.
                
                
            
                
	                Title: Thanks
	                Name: Howard
	                Date: 4/15/2005 6:53:20 AM
	                Comment: 
Thank you for your 'polite' comment Kevin - very revealing about you, if not very helpful.
I hope you didn't use regexlib to test because I've not found it reliable. I built and tested this on Expresso and it is in use on an ASP.NET application. As I stated it has been tested with something like 19,000 postcodes with both valid and invalid data. 
It DOES work with the examples in expresso and in .NET
The alternative you posted has an error in it so I can't comment on whether it works or not.
                
                
            
                
	                Title: Doesn't work
	                Name: Kevin Greensmart
	                Date: 4/15/2005 6:02:33 AM
	                Comment: 
Doesn't even work with the examples given. Dont waste your time with this rubbish.
Use:
 ^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$
instead