Tries are a data structure for storing strings that allow for fast pattern matching. A trie is a tree where each edge represents a character and each path from the root node to a leaf spells out a key. Standard tries insert strings by adding nodes for each character. Compressed tries reduce redundant nodes by compressing chains. Suffix tries store all suffixes of a text in a compressed trie to enable quick string queries. Tries support faster insertion and lookup compared to hash tables, with no collisions between keys.