added Pattern.reverse()