This document discusses regular languages and regular expressions. It defines regular expressions as notations used to represent regular languages, which are sets of strings that are either finite or can be generated using simple recursive rules. The document then provides the formal definitions and operations of regular expressions, including empty languages, single characters, unions, concatenations, and closures. It concludes by listing 37 problems involving writing regular expressions for specific languages over given alphabets.