Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,Ch. 0, strings, length and the empty string。
John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006,Ch. 1, strings and Kleene closure。