topics and text subsitutions in Inform 7

The following code works fine.

The test is a room. Peter is a person. Mary is a person. Peter is in the test. Mary is in the test.

Table of Characterization
Suspect Topic Generic Remark
Peter “Mary” “I love money”

Instead of asking someone about something:
choose row with a suspect of the noun in the Table of Characterization;
if the topic understood includes the topic entry:
say “[noun] says [generic remark entry]”.

However, if I change the topic entry in the table, using a text substitution instead, problems arise:

Table of Characterization Suspect Topic Generic Remark Peter "[Mary]" "I love money"

Now inform understands Mary as the noun. So if the command is

Ask Peter about Mary,
it prints “Mary says…”

Is it out of the question to use text substitutions in a topics column?

Thanks in advance.

What I think happens is that, since “[Mary]” is not just literal text, Inform has to work out who Mary is, and, apparently, when it does, it resets the noun to Mary.
(If you use the debug command TRACE 4 before ASK PETER ABOUT MARY, you’ll see that there is a difference in how the asking command is parsed according to as the topic entry is “Mary” or “[Mary]” – it runs an Inform 6 routine called NounDomain to find out who Mary is in the latter case but not in the former.)

There is an easy fix to the present problem, though:

Instead of asking someone (called informant) about something:
	choose row with a suspect of the noun in the Table of Characterization;
	if the topic understood includes the topic entry:
		say "[The informant] says [generic remark entry]".