Case insensitive and pattern matching

This replaces pull request #1751. This is for issue #1724.