In order to accomplish this, you need a router; Apache rewrite tools are not suited to handling this alone. Typically you use a front controller (often called index.php) that everything is rewritten to, passing the whole url as a parameter. The front controller then starts the router, which fires up the correct controller to handle the request.
Your .htaccess then looks something like:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Take a look at the Symfony router component, and read the first chapter of the Symfony book for the general idea of how that all works.