This text is an extended version of the chapter 'Automata and rational expressions' in the AutoMathA Handbook [47] that will appear soon, published by the European Science Foundation and edited by Jean-Éric Pin.It contains not only proofs, examples, and remarks that had been discarded due to the severe space constraints induced by the edition of a handbook of very large scope, but also developments that were not included as they did not seem to belong to the main stream of the subject. For that reason, the numbering of theorems, propositions, defintions, etc. may differ in the two versions, even if the general outline is the same.Not very many results in computer science are recognised as being as basic and fundamental as Kleene's theorem. It was originally stated as the equality of two sets of objects, and is still so, even if the names of the objects have changed -see for instance Theorem 1.4.11 in Chapter 1 of [47]. This chapter proposes a new look at this statement, in two ways. First, we explain how Kleene's theorem can be seen as the conjunction of two results with distinct hypotheses and scopes. Second, we express the first of these two results as the description of algorithms that relate the symbolic descriptions of the objects rather than as the equality of two sets.A two step Kleene's theorem In Kleene's theorem, we first distinguish a step that consists in proving that the set of regular (or rational) languages is equal to the set of languages accepted by finite automata -a set which we denote by Rat A * . This seems already to be Kleene's theorem itself and is indeed what S. C. Kleene established in [34]. But it is not, if one considers -as we shall do here -that this equality merely states the equality of the expressive power of rational expressions and that of finite labelled directed graphs. This is universally true. It holds independently of the structure in which the labels of the automata or the atoms of the expressions are taken, in any monoids or even in the algebra of polynomials under certain hypotheses.By the virtue of the numerous properties of finite automata over finitely generated (f.g., for short) free monoids: being apt to determinisation for instance, the family of languages accepted by such automata is endowed with many properties as well: being closed under complementation for instance. These properties are extraneous to the definition of the languages by expressions, and then -by the former result -to the definition by automata. It is then justified, especially in view of the generalisation of expressions and automata to other monoids and even to other structures, to set up a definition of a new family of languages by new means, that will extend in the case of other structures, these properties of the languages over f.g. free monoids. It turns out that the adequate definition will be given in terms of representations by matrices of finite dimension; we shall call the languages defined in that way the recognisable languages and we shall denote their family by Rec A * . The second ...