I'll try to give a brief explanation that hopefully clears this up for you.
First: If you've never used Regular Expressions, then go look it up.
A RewriteRule is three different pieces. First is the expression used to search a request string for a particular pattern. Second is the destination string that is actually served up from the server. Third are the options which go inside the brackets.
If a client makes a request to the server in the format of one of the regular expressions, then the destination string is actually called and returned to the user, though the user does not see this action. Anything in your regular expression that is inside of a set of parentheses will be saved for use in the destination string.
So, with your two rules (assuming your site is http://www.example.com/), the following would happen:
I input http://www.example.com and the server returns the index page or the filelisting (or something else already determined by a previous .htaccess file).
I input http://www.example.com/page2.html and the server would return app/webroot/page2.html. If that file doesn't exist, then I would get a 404 Error Page instead.
BOTH of the RewriteRules have [L]
at the end of them. What this does is it tells Apache that this is the Last rule to follow. If the rule fits, Apache will run it and then stop reading further rules. There are other options you can use, separated by commas.