The data model of sgrep is based on regions, which are nonempty substrings of text. Regions are typically occurrences of constant strings, SGML-tags, or meaningful text elements, which are recognizable through some delimiting strings or the builtin SGML, XML and HTML parser.
Regions can be arbitrarily long, arbitrarily overlapping, and arbitrarily nested.
Sgrep is a convenient tool for making queries to almost any kind of text files with some well kown structure. With relatively simple queries you can display mail messages by their subject or sender, extract titles or links or any regions from HTML files, function prototypes from C or make complex queries to SGML files based on the DTD of the file. Sgrep version 1.92a is out. This version contains the sources, Win32 binary and binaries for HP-UX, Linux, OSF1 and Solaris. See the download page.