so… _*1 does not capture “tell him”, it only captures tell.
if “tell him” is a keyword, then you can write
u: (tell him _*) ^keep() $keyword = “tell him”
^input(‘_1) ^fail(SENTENCE)
u: (that I love him) if ($keyword == “tell him”) {...}
since the 1st rule does not generate output, you don’t need ^repeat()
to keep the submitted input faithful to the original (not canonical form) you need ‘_1 and not _1.
To test the keyword you cant say tell him, which only tests one word, you need to quote the phrase.