internal RegexEnumerator(RegexIndexImpl index, IEnumerator iterator, string pattern)
#endif
            {
                this.index    = index;
                this.iterator = iterator;
                this.pattern  = pattern;
            }
            internal JoinRegexEnumerable(RegexIndexImpl index, ISet[] sets, string pattern)
#endif
            {
                this.index   = index;
                this.sets    = sets;
                this.pattern = pattern;
            }
            internal JoinRegexEnumerator(RegexIndexImpl index, ISet[] sets, string pattern)
#endif
            {
                this.index = index;
                iterators  = new PersistentEnumerator[sets.Length];
                for (int i = 0; i < sets.Length; i++)
                {
                    iterators[i] = (PersistentEnumerator)sets[i].GetEnumerator();
                }
                this.pattern = pattern;
            }
 internal JoinRegexEnumerator(RegexIndexImpl <T> index, Perst.ISet <T>[] sets, string pattern)
 internal RegexEnumerator(RegexIndexImpl <T> index, IEnumerator <T> iterator, string pattern)