Anchors Sample Patterns ^ Start of line + ([A-Za-z0-9-]+) Letters, numbers and hyphens \A Start of string + (\d{1,2}\/\d{1,2}\/\d{4}) Date (e.g. 21/3/2006) $ End of line + ([^\s]+(?=\.(jpg|gif|png))\.\2) jpg, gif or png image \Z End of string + (^[1-9]{1}$|^[1-4]{1}[0-9]{1}$|^50$) Any number from 1 to 50 inclusive \b Word boundary + (#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?) Valid hexadecimal colour code \B Not word boundary + ((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,15}) 8 to 15 character string with at least one \< Start of word \> End of word Character Classes upper case letter, one lower case letter, and one digit (useful for passwords). (\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}) Email addresses (\<(/?[^\>]+)\>) HTML Tags \c Control character \s White space \S Not white space \d Digit \D Not digit \w Word * 0 or more + \W Not word *? 0 or more, ungreedy + \xhh Hexadecimal character hh + 1 or more + (a|b) a or b + \Oxxx Octal character xxx +? 1 or more, ungreedy + (...) Group + ? 0 or 1 + (?:...) Passive Group + ?? 0 or 1, ungreedy + [abc] Range (a or b or c) + {3} Exactly 3 + [^abc] Not a or b or c + POSIX Character Classes Note These patterns are intended for reference purposes and have not been extensively tested. Please use with caution and test thoroughly before use. Quantifiers Ranges . Any character except new line (\n) + [:upper:] Upper case letters {3,} 3 or more + [a-q] Letter between a and q + [:lower:] Lower case letters {3,5} 3, 4 or 5 + [A-Q] Upper case letter + [:alpha:] All letters {3,5}? 3, 4 or 5, ungreedy + [:alnum:] Digits and letters [0-7] Digit between 0 and 7 + [:digit:] Digits \n nth group/subpattern + [:xdigit:] Hexadecimal digits [:punct:] Punctuation \ Escape Character + [:blank:] Space and tab \n New line + [:space:] Blank characters \r Carriage return + [:cntrl:] Control characters \t Tab + [:graph:] Printed characters \v Vertical tab + [:print:] Printed characters and \f Form feed + g Global match spaces \a Alarm i Case-insensitive Digits, letters and [\b] Backspace m Multiple lines underscore \e Escape s Treat string as single line \N{name} Named Character x Allow comments and [:word:] Special Characters between A and Q + Note Ranges are inclusive. Pattern Modifiers white space in pattern Assertions String Replacement (Backreferences) e Evaluate replacement U Ungreedy pattern ?= Lookahead assertion + ?! Negative lookahead + $n nth non-passive group ?<= Lookbehind assertion + $2 "xyz" in /^(abc(xyz))$/ ?!= or ?<! Negative lookbehind + $1 "xyz" in /^(?:abc)(xyz)$/ ?> Once-only Subexpression $` Before matched string ^ [ . ?() Condition [if then] $' After matched string $ { * ?()| Condition [if then else] $+ Last matched string ( \ + ?# Comment $& Entire matched string ) | ? $_ Entire input string < > $$ Literal "$" Note Items marked + should work in most regular expression implementations. Metacharacters (must be escaped) Available free from AddedBytes.com