How to programatically explore the matching done by the substrings filter

This page is for experiments involving GtSpotterSubstringsFilterStream Object subclass: #GtSpotterSubstringsFilterStream uses: TAsyncStream instanceVariableNames: 'scopeStream searchString caseSensitive itemStringBlock prefixMatches middleMatches currentMatchType currentOtherMatchStream searchWords caseSensitiveByCapitalization' classVariableNames: 'ExactMatch MiddleMatch NoMatch PrefixMatch' package: 'GToolkit-Spotter-Streams' . It instantiates a filter, applies a configuration on it, and matches strings. The case it uses is that of searching for classes by name.

queryString := 'BlElement'.
  
queryString :=  'GtSpotterSubstringsFilterStream'
  
configuration := GtSpotterSubstringsFilterConfiguration new.
  
configuration
	beCaseSensitiveByCapitalization;
	withWordsSplitter
  
filterStream := (GtSpotterSubstringsFilterStream
	forStream: SystemNavigation default allClassesAndTraits
		asAsyncStream
	search:  queryString).
filterStream itemString: [ :aClass | aClass name ].

configuration ifNotNil: [
	filterStream searchWords: (configuration querySplitter
		splitQueryString: queryString).
	configuration caseComparison 
		applyOnFilterStream: filterStream ].
		
filterStream
  
filterStream searchSubstringIn: 'BlElement'
  
filterStream searchSubstringIn: 'GtSpotterSubstringsFilterStream'