Heirloom Troff has a handy string search function called .index which works like this:
.index R xx string The position where string occurs in xx is stored in register R. It doesn't seem to work yet in Groff, but I'm hoping somebody has a macro that implements .index. Thanks, --b9