# File lib/cassiopee.rb, line 494
        def searchApproximate(s,edit)
                
                if(edit==0 && !@useAmbiguity) 
                        return searchExact(s)
                end
                        allowederrors = edit
                if(edit>=0)
                  useHamming = true
                  minmatchsize = s.length
                  maxmatchsize = s.length
                          updateCache(1,edit)
                          @matches = @cache.loadCache()
                else
                  useHamming = false
                  edit = edit * (-1)
              minmatchsize = s.length - edit
              maxmatchsize = s.length + edit
                          updateCache(2,edit)
                          @matches = @cache.loadCache()
            end
                        
                        if(@matches.length>0)
                                return @matches
                        end
                        
                        s = s.downcase
            
                        
            #@matches.clear
                        @pattern = Digest::MD5.hexdigest(s)
                        
                        parseSuffixes(@sequence,minmatchsize,maxmatchsize,allowederrors,s)
            
                        return cache?(@matches) unless(method == METHOD_SUFFIX)
                        
 
            
                       
                @suffixes.each do |md5val,posArray|
                        if(md5val == SUFFIXLEN)
                                next
                        end
                        if (md5val == @pattern)
                                filteredPosArray = filter(posArray)
                    match = Array[md5val, 0, filteredPosArray]
                              $log.debug "Match: " << match.inspect
                              @matches << match
                      else
                              if(posArray[0]>= minmatchsize && posArray[0] <= maxmatchsize)
                                      # Get string
                                      seq = extractSuffix(posArray[1],posArray[0])
                                                errors = isApproximateEqual?(seq,s,useHamming,edit)
                                                
                                      if(errors>=0)
                                              filteredPosArray = filter(posArray)
                                          match = Array[md5val, errors, filteredPosArray]
                                              $log.debug "Match: " << match.inspect
                                              @matches << match
                                      end
                              end
                end
                
                end
                
                return cache?(@matches) 
        end