Regular expressions are a convenient ways to express patterns (i.e. for search). There are a number of tools which use regular expressions:
See the appendix of the The Java Language Specification. This is a context free grammar.
YACC is a tool which can be used to generate a C program (a parser) from a grammar. Parser generators now also exist for other languages, like Java CUP for Java.
See section 2.1 (pp 38 - 45) contains a simple example of how a protocol for electronic cash can be specified and analyzed using finite automata.