Regular expressions allow you to form sets of words using brackets [ and ]. For example, I can define a set [Ff] that will match "F" or "f". You can also use sets to accept ranges, for example [A-Z] will accept all uppercase letters, [A-Za-z] will accept all letters whether uppercase or lowercase, and [a-z0-9] will accept lowercase letters and numbers only. Inside sets, the caret symbol ^ means "not", therefore [^A-Z] will accept everything that is not an uppercase letter, and [^A-Za-z0-9] will accept symbols only - no uppercase letters, no lowercase letters, and no numbers.
Here is a list of some novice regular expressions, again along with string used to match, and whether or not a match is made:
No match; the regexp says "Anything that is not F or f, followed by "oo". This would match "too", "boo", "zoo", etc.
No match; the acceptable range for the first character ends at S
Match; the range is inclusive
No match; case sensitivity!
Match; case problems fixed
Match; first character can be anything that is not a, b, c, d, e, etc (lowercase)
No match; the range excludes lowercase characters only, so you would think T would be fine. However, the "i" at the end makes it insensitive, which turns [^a-z] into [^a-zA-Z]
The last one is a common "gotcha", so make sure you understand why it does not match.