This patch is more of an RFC to change the default behavior of the substrs argument to self.expect. Currently, the elements of substrs are unordered and as long as the string appears in the output, the assertion passes. I think we can be more precise by requiring that the substrings be ordered in the way they appear. My hope is that this will make it harder to accidentally pass a check because a string appears out of order.
A possible alternative is to keep the option but have it off by default. Currently there's about 50 tests failing because of this. If we like to move forward with making this the default I plan to incrementally update tests before flipping the switch.