From your comments I surmise that any character styling, or a new line of poetry (\q1 , \q2) will block the application of the rule. Likewise a verse number (\v # ) may also be an problem.
I do not have an answer, but I have a similar problem that may have a related solution, so I am piggybacking on your post.
What I am trying to do is to change the capitalization of US English headings to UK title capitalization. US title style capitalizes the first word and all words except a limited set of short words, whereas the UK style capitalizes the first word and only proper nouns. I have the logic to do this, but I need a way to apply it only to text in headings (\s1 , \s2 , etc. ).
What I have found is that transliteration projects only apply encoding converter changes to vernacular text, and they are not aware of markup contexts. I have have a cc table that applies capitalization changes properly outside of Paratext, but when I load it into a transliteration project it does not work correctly. My table makes changes to all vernacular text fields. Non-vernacular fields (\id , \rem ) were not affected
For the transliteration functionality to really be useful, we need a way to make changes that are aware of the markup context. Is that possible?