Pattern is by default a normal string that is matched precisely (but without regard to case, except in the case of pickaxe). However, when you check the re checkbox, the pattern entered is recognized as the POSIX extended regular expression (also case insensitive).

free
This mode is a "free form" search text box. If you prefix the search string with a searchtype then it performs that type of search. If you put an sha1 (or fragement) with no prefix then it will try to show that commit. Eg: 'commit: blah blah' is the same as searching for 'blah blah' in commit mode 'deadbeef' will try to show the commit id starting with 'deadbeef'. If no valid prefix is found, and the string does not contain hex characters then it will be treated as a 'commit' search.
commit
The commit messages and authorship information will be scanned for the given pattern.
grep
All files in the currently selected tree (HEAD unless you are explicitly browsing a different one) are searched for the given pattern. On large trees, this search can take a while and put some strain on the server, so please use it with some consideration. Note that due to git-grep peculiarity, currently if regexp mode is turned off, the matches are case-sensitive.
author
Name and e-mail of the change author and date of birth of the patch will be scanned for the given pattern.
committer
Name and e-mail of the committer and date of commit will be scanned for the given pattern.
pickaxe
All commits that caused the string to appear or disappear from any file (changes that added, removed or "modified" the string) will be listed. This search can take a while and takes a lot of strain on the server, so please use it wisely. Note that since you may be interested even in changes just changing the case as well, this search is case sensitive.