egExp(pattern.pattern.source, flags + "g");
							}

							pattern = pattern.pattern || pattern;

							// Donâ€™t cache length as it changes during the loop
							for (var i=0, pos = 0; i<strarr.length; pos += strarr[i].length, ++i) {

								var str = strarr[i];

								if (strarr.length > text.length) {
									// Something went terribly wrong, ABORT, ABORT!
									break tokenloop;
								}

								if (str instanceof Token) {
									continue;
								}

								pattern.lastIndex = 0;

	