Beste Möglichkeit, einen Teilstring in einem String zu finden

Ich habe ein Problem bei der Suche nach einem Teilstring in einem String. Diese Teilzeichenfolge kann in der Zeichenfolge enthalten sein oder nicht.

str = "hello how are you?"
substr = "how are"

Zwei Möglichkeiten, die ich kenne, wenn es geht, sind:

string.indexOf("how are") Regex

Aber gibt es einen anderen "optimierten" Weg? Was hättest du getan

Kann Ruby eine bessere Antwort geben? Da wir jRuby verwenden, kann die Antwort in Ruby oder Java sein.