I'm trying to define concise biblatex-style citation macros for a custom bibliographic style specification with support for intelligent placement of trailing punctuation, and I've encountered an unusual error. If I try to define the macros within the btxrenderingdefinitions environment, then the code for handling trailing punctuation with the \doifinstring and \doifnotinstring macros fails in some cases. Specifically, it correctly detects when the trailing punctuation is a period, comma, or semicolon, but not when it is a colon, exclamation point, or question mark. The following MWE reproduces the error:
```
\startbtxrenderingdefinitions[myspec]
\def\autopuncttest#1#2{%
\removeunwantedspaces%
\doifinstring{#2}{,.!?;:}{#2}%
\footnote{#1}%
\doifnotinstring{#2}{,.!?;:}{#2}%
}
\stopbtxrenderingdefinitions
\usebtxdefinitions[myspec]
\starttext
This works \autopuncttest{Footnote 1}, as does this \autopuncttest{Footnote 2}; and so does this \autopuncttest{Footnote 3}.\blank
But this one fails if defined in the bib spec \autopuncttest{Footnote 4}!\blank
And why does this one fail in the bib spec too \autopuncttest{Footnote 5}?\blank
\stoptext
```