[a-z] matches all characters between lowercase a and z.
+ sign means any number of ocurrences, and brackets () define a variable to be used later in the rule.
So first ([a-z]+) in our example, matches 'geography' and the second one matches the word 'continents'.
These two variables are referenced in the real url by using $1 and $2. Numbers are assigned by the order of variable appearance.

If it does not work, perhaps you don't have mode_rewrite module enabled on your server. You can check that by executing a php file that contains only one function:
<?php
phpinfo();
?>

Under 'Loaded Modules' section look for mod_rewrite. If it is not listed there, you have to enable it by removing comment from corresponding line in httpd.conf file and restarting Apache server.
If you don't have access to httpd.conf then ask your hosting service to enable the module.