We present lambda-re, a minimal functional calculus with _regular expression types_ for strings, in order to establish a theoretical foundation for using regular expressions as types of strings in text processing languages. The major technical novelties in this paper (with respect to other work such as XDuce) are (1) the use of regular expression _effects_ to statically analyze the shape of the output of an even diverging program and (2) the treatment of as-patterns in non-tail positions. We expect that our approach will be of help for bringing the merits of static typing into scripting languages such as Perl, Python, and Ruby without sacrificing too much of their expressiveness and flexibility.