I was afraid you were going to say that. I will comprimise, but let me first tell you why concatting it all to one string will not work. Namely, you would only check the first character of said string to be false, no matter whatever else is in that string, because the expression will break right then and there.

There is a middle ground solution. Find the edge of each gap within the range and then test all characters exactly one index outward of the range. This way you will at least test the boundaries of all ranges. Common knowledge states that nothing within those invalid boundaries should be valid either. That way you don't test thousands upon thousands of characters, but you do test just a bit more than the first character.