OK, I know its very unlikely but I have just about convinced myself I have found a bug in RichMemo.
Linux, GTK2, Search() functions.
As hinted above, looks like the result from f TCustomRichMemo.Search():boolean; implemented in line #1078 is not setting its result correctly. Firstly, there is a way through the function without setting it at all. Secondly, if the function TGtk2WSCustomRichMemo.Search(..): Integer; in Gtk2RichMemo, line #1436 does find the searched for string, TCustomRichMemo.Search():boolean does not set its Result to True.
I add two lines to RichMemo.pas and it passes my test.....
Firstly, insert line #1094, something to set Result if the GTK2 search works -
if ATextStart >= 0 then Result := true;
Secondly, first thing in TCustomRichMemo.Search():boolean line #1083 insert
Result:= false;
Still have problems with Setlink() but that needs a separate thread.....
David