Question : help me understand regular Expression

Can someone please help me understand what I am doing wrong?  I want an expression that validates a number between 1900 and 2099.  this the expression I cam up with:
[19|20]+[0-9]{2}  my thinking here is the first two characters can be "19" or "20" then the next two any numeric.  but when I test it it seems any combination of number from 0-2 are valid no matter what the length.  

Answer : help me understand regular Expression

[19|20] means any character: 1, 9, 2, or 0 -- the vertical bar is redundant. The plus means one or more of the previous, so one or more of 1, 9, 2, or 0. The rest means exactly two numeric digits.

Try the following pattern instead:
1:
(19|20)\d{2}
Random Solutions  
 
programming4us programming4us