# File lib/fastri/ri_index.rb, line 414
  def namespaces_under_matching(class_entry_or_name, regexp, recursive, scope = nil)
    case class_entry_or_name
    when ClassEntry
      class_entry = class_entry_or_name
    when ""
      class_entry = top_level_namespace(scope)[0]
    else
      class_entry = get_entry(@namespace_array, class_entry_or_name, ClassEntry, scope)
    end
    return [] unless class_entry
    ret = []
    re1, re2 = matching_regexps_namespace(class_entry.full_name)
    (class_entry.index+1...@namespace_array.size).each do |i|
      entry = @namespace_array[i]
      break unless re1 =~ entry
      next if !recursive && re2 !~ entry 
      full_name = entry[/\S+/]
      next unless regexp =~ full_name
      if scope
        sources = namespace_sources(i)
        if sources.include?(sindex = scope_to_sindex(scope))
          ret << ClassEntry.new(self, full_name, i, sindex)
        end
      else
        ret << ClassEntry.new(self, full_name, i, nil)
      end
    end
    ret
  end