Troubleshooting add_rewrite_rule

Hiya, I'm having some problems with a rewrite rule. The following rule works perfectly:
add_rewrite_rule('^cottages/([0-9]+)/?$', 'index.php?pagename=cottages&searchpage=$matches[1]', 'top');
When I echo get_query_var("searchpage") on http://proof.chillifish.com/dcc/cottages/4/ I get the value "4". However, when I use the following rule on http://proof.chillifish.com/dcc/cottages/thatched-cottages/2/ I get the correct pagename, but the searchpage is empty and it has removed the number at the end of the url.
add_rewrite_rule('^cottages/([^/]*)/([0-9]+)/?$', 'index.php?pagename=$matches[1]&searchpage=$matches[2]', 'top');