The code got a little cluttered here, the indentation got too deep. Maybe lines 281 to 287 could be moved into a function or method and simply be called `if matcher.matches(info)` ?