Fair enough, but for my particular needs the user might mistype the name, or just plug in a firstname or surname, etc.
So I need the flexible matching.
For reference to anyone else that needs it, I modified line 422 withing dnn.controls.dnntextsuggest.js from
if (this.formatText(oTSNode.text).indexOf(this.formatText(this.getText())) == 0 && oCont.childNodes.length < this.maxRows)
To
if ((oCont.childNodes.length < this.maxRows) && ((this.callBack != '') || this.formatText(oTSNode.text).indexOf(this.formatText(this.getText())) == 0))
In this way, original left matching will be preserved if standard databinding - otherwise I'll show whatever my callback returns each time unfiltered.
With regards to specifying an empty string as a delimiter, this works in IE but doesn't seem to in Firefox (2.0.0.5, including on your sample site). Firefox interprets the empty string as a character with code 65533 for some reason, which comes up on screen as a question mark. I added the following hack after line 65 to fix this:
this.delimiter = dnn.dom.getAttr(o, 'del', '');
// HACK: Firefox seems to pickup a dodgy delimiter character when none has actually been specified
if (this.delimiter.charCodeAt(0) == 65533) this.delimiter = '';