The sequence I follow when performing reads is to take a request (that requires a database query) from the Web tier and check the cache for previously stored results of that query.
This expression is then retained by the Pattern class before it is passed on to the Matcher class to check for matches in the context of a character sequence.