Yeah, I think it's luck that this works the way the code is. If the shell can't find files that match the expression then it passes the '*' even though it hasn't been escaped. That just happens to be the case most of the time.

I'm assuming that in your example code you expect self.includes and self.excludes to be expanded already?