Based on what you described I tried an experiment;
searchstring = "whatever"
? " ------ type of searchstring is "; type(searchString)
regExOb = CreateObject("roRegex", searchString, "i")
channel = "I watch whatever I want"
? "regExOb is match ? "; regExOb.IsMatch(channel)
------ type of searchstring is String
regExOb is match ? true
mystring = "whatever"
list = CreateObject("roList")
list.Addtail(mystring)
searchstring = list.GetTail()
? " ------ type of searchstring is "; type(searchString)
regExOb = CreateObject("roRegex", searchString, "i")
channel = "I watch whatever I want"
? "regExOb is match ? "; regExOb.IsMatch(channel)
------ type of searchstring is roString
regExOb is match ? true
I know this doesn't answer your question but maybe it explains that the problem is something different than what you thought? My understanding of the docs is that roString and regular old String should be interchangeable here.
aspiring