Apache Regexp
Copyright 2001-2007 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
          
It consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation. Please visit the
project homepage (http://jakarta.apache.org/regexp) for more
information.
