Single character

 # One 'a'
 grep -P 'a' filename

 # One or more 'a'
 grep -P 'a+' filename

 # Zero or more 'a'
 grep -P 'a*' filename

 # Zero or one 'a'
 grep -P 'a?' filename

 # Three 'a'
 grep -P 'a{3}' filename

 # Between one and three 'a'
 grep -P 'a{1,3}' filename

 # Begins with a
 grep -P '^a' filename

 # Ends with a 
 grep -P 'a$' filename

Word

 grep -P 'cat' filename

 # Wildcard in the middle
 grep -P 'c.t' filename

 # Multiple words (cat, cot, cut)
 grep -P 'c[aou]t' filename

 # ab or cd
 grep -P 'ab|cd' filename

Special patterns

 \s looks for a space character (could be space or tab).
 \S looks for a non-space character.
 \d looks for a number.
 \D looks for a non-number.
 \w looks for an alphabet.
 \W looks for a non-alphabet.
 \b looks for word-boundary
 \B looks for non-word boundary.

Sandboxes and References

http://regexr.com/ https://regex101.com/