How to programatically explore the matching done by the substrings filter

This page is for experiments involving GtSpotterSubstringsFilterStream Object << #GtSpotterSubstringsFilterStream traits: {TAsyncStream}; slots: { #scopeStream . #searchString . #caseSensitive . #itemStringBlock . #prefixMatches . #middleMatches . #currentMatchType . #currentOtherMatchStream . #searchWords . #caseSensitiveByCapitalization }; sharedVariables: { #MiddleMatch . #NoMatch . #ExactMatch . #PrefixMatch }; tag: 'Streams'; package: 'GToolkit-Spotter' . 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'