# File lib/fastri/ri_index.rb, line 453
  def methods_under_matching(class_entry_or_name, regexp, recursive, scope = nil)
    case class_entry_or_name
    when ClassEntry
      full_name = class_entry_or_name.full_name
    else
      full_name = class_entry_or_name
    end
    method_entry = get_entry(@method_array, full_name, MethodEntry)
    return [] unless method_entry
    ret = []
    re1, re2 = matching_regexps_method(full_name)
    (method_entry.index...@method_array.size).each do |i|
      entry = @method_array[i]
      break unless re1 =~ entry
      next if !recursive && re2 !~ entry 
      full_name = entry[/\S+/]
      next unless regexp =~ full_name
      if scope
        sources = method_sources(i)
        if sources.include?(sindex = scope_to_sindex(scope))
          ret << MethodEntry.new(self, full_name, i, sindex)
        end
      else
        ret << MethodEntry.new(self, full_name, i, nil)
      end
    end
    ret
  end