I have a different theory, since you are referring to a service which processes a lot of messages and the messages are long, I would suggest you use the Pattern, Matcher since it would be the correct way to find texts with regular expressions. In practice (using large texts) which in your case, it will be the most efficient way. This is because a constant pattern (like "ho") will not be processed by the regex engine (which is slow) but by an Boyer-Moore-Algorithm (which is fast). Also, if you are implementing a service that just does process messages based on some patterns, you must keep it flexible so that it allows expandable search patterns, rather then being fixed - i.e, the services get's the patterns from the config and applies it based on a criteria.
This guide shows how to implement the search patterns, apply the ones that fit your needs. It has very good examples on how to use Quantifiers, Boundary Matchers etc. Here is another helpful links that point to blogs that focus on regex and String.matches performance.