I do not repeat your bug either using :prepare or using :testpattern.
Command: :testpattern (~emoapology) i am sorry.
Matched
Command: :prepare I am sorry.
TokenControl: DO_SUBSTITUTE_SYSTEM DO_NUMBER_MERGE DO_PROPERNAME_MERGE DO_SPELLCHECK DO_INTERJECTION_SPLITTING DO_PARSE
Original User Input: I am sorry.
Tokenized into: I am sorry .
Substituted (essentials interjections ) into: ~emoapology
Actual used input: ~emoapology
Xref: 1:~emoapology
Fragments: 1:~emoapology
badparse Tagged POS 1 words: ~emoapology ()
MainSentence: PRESENT
Concepts:
1: ~emoapology raw= +~sentenceend(1) +~emoapology(1) +~interjections(1) //
1: ~emoapology canonical= //
sequences=
After parse TokenFlags: DO_ESSENTIALS DO_INTERJECTIONS PRESENT PERIODMARK USERINPUT FAULTY_PARSE NOT_SENTENCE