!!Unix / Linux search command utility

!Usage:

{{{
grep [options] regexp  [file...]

Options:

	-v	show lines that don't match instead of lines that match
	-H	print file names with matches
	-i	ignore case
	-E      enable extended regular expressions
	-c      print count only
	-l      just print the names of files that have matches
	-n      print line numbers
	-r      recurse into sub-directories
	-a      treat files as ascii
}}}

!Extended regular expressions (i.e. -E).  Those allowed in basic, non-extended mode too are marked with (B):

	Matching characters
{{{
	.	match any character (B)
	^	matches beginning of line (B)
	$	matches end of line (B)
	[abc]	matches 'a', 'b', or 'c' (B)
	[^abc]	matches anything except 'a', 'b', or 'c' (B)
	[a-e]	range match, same as [abcde] (B)
	[[:x:]]	match pre-defined class of characters as follows: (B)
		:alnum:
		:alpha:
		:digit:
		:lower:
		:upper:
		:space:
	\w	same as [[:alnum:]]
	\W	same as [^[:alnum:]]
	\X      if X is a regular expression character then \X will cause a
	        match with the actual character and not the special meaning
	        of the character
}}}	

	Repeating characters
{{{
	*	preceding item matched zero or more times (B)
	?	preceding item matched 0 or 1 time
	+	preceding item matched one or more times
}}}
        Grouping and Referencing
{{{
        ()      groups are surrounded with parenthesis 
        \n      backslash with a number n references the n'th grouping
}}}

        Alternation
{{{
        e1|e2   matches expression e1 OR e2
}}}