PostgreSQLでしか使えませんが、ActiveRecordで正規表現検索をする必要があったので、スコープを自作しました。
scope :with_regexp, ->(column, pattern) {
pattern = pattern.source if pattern.class == Regexp
where("#{table_name}.#{column} ~ ?", pattern) if columns_hash[column.to_s].type == :string
}