Abstract: Regular expressions are an example of a regular language and are a subset of both the context free and the context sensitive languages.As the syntactic structure of many computer programming languages can be described using a context-free grammar, regular expressions can be viewed as a simplified and restricted programming language.While lacking many of the more sophisticated programming language features (e.g., types, functions), regular expressions still provide users with sequencing, alternation, and iteration constructs, and thus provide an abstract view of basic control-flow features.Concatenation can be regarded as a form of sequencing where the elements of an expression containing concatenation must occur in a specific, linear sequence.The "or" operator, represented with a vertical bar |, provides alternation and permits one to choose between two options, just as an "if-then-else" statement permits the choice of two alternatives.Finally, the Kleene closure, represented by a superscript asterisk * functions as an iteration operator and performs a role similar to looping constructs (e.g., "do", "while", or "for" in the C programming language).Thus, regular expressions can be viewed as simple programs with basic control-flow constructs, but with no explicit data management.Alternatively, regular expressions are used in computer software, such as grep, vi, and Perl, as a mechanism to describe the targets of search operations.For this role, regular expressions provide a pattern description mechanism with pattern matches identifying desired search solutions.For example, the expression [eE][nN][dD] identifies the term "end" where the letters can independently be in upper or lower case (e.g., "eNd", "ENd", "END").Regular languages, while being highly formalized and restrictive with regard to their expressiveness, are never-the-less a form of language.It has been documented that humans develop the ability to read before they develop the ability to write (Salvatori, 1983).Consequently, by comparing novice's skills as they learn to read (i.e., applying) and write (i.e., creating) regular expressions, one can examine the relationship of formal languages to natural languages (e.g., English) and potentially permit research on the use of natural language to be applied to computer programming.Increased understanding of regular expression use can therefore provide understanding of how we, as humans, interact with computers when using formal languages.That is, understanding the cognitive skills associated with lower level formal languages provides insight on the use of higher level imperative style languages such as Fortran, C++, or Pascal. www.intechopen.com Advances in Human-Computer Interaction 72While there has been significant research on algorithms for automated matching and manipulation of regular expressions (Hopcraft & Ullman, 1979), there has been little research on the human element of these systems.Insight into the manipulation of regular expressions provides insight into the manipulation of formal languages, and hence on computer programming-a foundational task in human-computer interaction.In this chapter, we address this deficiency and explore the cognition underlying programming by examining performance on the manipulation of regular expressions.The remainder of this chapter is organised as follows.A brief overview of regular expressions in the context of formal language theory is first provided.Then, we present the first of two studies that we conducted to investigate performance on expression application (i.e., matching) and creation tasks.The results of the second, revised, study are then presented, after which we describe a third study exploring the similarity between regular and Boolean expressions.Finally, the chapter concludes with an examination of some future research directions.