No need for regular expressions here:
def matchFields(param: String): Set[String] = fields.filter(_.contains(param))
scala> matchFields("abc")
res0: Set[String] = Set(uio abcd, abc, abc per, yrabc, abcd)
contains checks that one string is a substring of another, filter filters out elements, that not match given predicate.
If you really really want regexps:
import scala.util.matching._
scala> def matchFields(R: Regex): Set[String] = fields.collect{case str@R() => str}
matchFields: (R: scala.util.matching.Regex)Set[String]
scala> matchFields(".*abc.*".r)
res5: Set[String] = Set(uio abcd, abc, abc per, yrabc, abcd)
Or:
scala> def matchFields(R: Regex): Set[String] = fields.flatMap(R.findFirstIn)
matchFields: (R: scala.util.matching.Regex)Set[String]
scala> matchFields(".*abc.*".r)
res7: Set[String] = Set(uio abcd, abc, abc per, yrabc, abcd)
.* means 0 or more of any symbol. .r creates Regex from String