+1. Character Set Handling
+2. Regular Expressions
+3. Patterns: Searching, Limiting and Tagging
+
+ 3.1. Pattern Modifier
+ 3.2. Simple Searches
+ 3.3. Nesting and Boolean Operators
+ 3.4. Searching by Date
+
+4. Using Tags
+5. Using Hooks
+
+ 5.1. Message Matching in Hooks
+
+6. External Address Queries
+7. Mailbox Formats
+8. Mailbox Shortcuts
+9. Handling Mailing Lists
+10. New Mail Detection
+
+ 10.1. How New Mail Detection Works
+ 10.2. Polling For New Mail
+
+11. Editing Threads
+
+ 11.1. Linking Threads
+ 11.2. Breaking Threads
+
+12. Delivery Status Notification (DSN) Support
+13. Start a WWW Browser on URLs
+14. Miscellany
+
+1. Character Set Handling
+
+A ?character set? is basically a mapping between bytes and glyphs and implies a
+certain character encoding scheme. For example, for the ISO 8859 family of
+character sets, an encoding of 8bit per character is used. For the Unicode
+character set, different character encodings may be used, UTF-8 being the most
+popular. In UTF-8, a character is represented using a variable number of bytes
+ranging from 1 to 4.
+
+Since Mutt is a command-line tool run from a shell, and delegates certain tasks
+to external tools (such as an editor for composing/editing messages), all of
+these tools need to agree on a character set and encoding. There exists no way
+to reliably deduce the character set a plain text file has. Interoperability is
+gained by the use of well-defined environment variables. The full set can be
+printed by issuing locale on the command line.
+
+Upon startup, Mutt determines the character set on its own using routines that
+inspect locale-specific environment variables. Therefore, it is generally not
+necessary to set the $charset variable in Mutt. It may even be
+counter-productive as Mutt uses system and library functions that derive the
+character set themselves and on which Mutt has no influence. It's safest to let
+Mutt work out the locale setup itself.
+
+If you happen to work with several character sets on a regular basis, it's
+highly advisable to use Unicode and an UTF-8 locale. Unicode can represent
+nearly all characters in a message at the same time. When not using a Unicode
+locale, it may happen that you receive messages with characters not
+representable in your locale. When displaying such a message, or replying to or
+forwarding it, information may get lost possibly rendering the message unusable
+(not only for you but also for the recipient, this breakage is not reversible
+as lost information cannot be guessed).
+
+A Unicode locale makes all conversions superfluous which eliminates the risk of
+conversion errors. It also eliminates potentially wrong expectations about the
+character set between Mutt and external programs.
+
+The terminal emulator used also must be properly configured for the current
+locale. Terminal emulators usually do not derive the locale from environment
+variables, they need to be configured separately. If the terminal is
+incorrectly configured, Mutt may display random and unexpected characters
+(question marks, octal codes, or just random glyphs), format strings may not
+work as expected, you may not be abled to enter non-ascii characters, and
+possible more. Data is always represented using bytes and so a correct setup is
+very important as to the machine, all character sets ?look? the same.
+
+Warning: A mismatch between what system and library functions think the locale
+is and what Mutt was told what the locale is may make it behave badly with
+non-ascii input: it will fail at seemingly random places. This warning is to be
+taken seriously since not only local mail handling may suffer: sent messages
+may carry wrong character set information the receiver has too deal with. The
+need to set $charset directly in most cases points at terminal and environment
+variable setup problems, not Mutt problems.
+
+A list of officially assigned and known character sets can be found at IANA, a
+list of locally supported locales can be obtained by running locale -a.
+
+2. Regular Expressions