The solution at your answer:
<VirtualHost *:80>
ServerName www.company.com
ServerAlias company.com
DocumentRoot /path1
</VirtualHost>
<VirtualHost *:80>
ServerName *.company.com
DocumentRoot /path2
</VirtualHost>
The polite use of wildcards "catch all" domains:
<VirtualHost *:80>
ServerName subdomain1.company.com
DocumentRoot /path/to/subdomain1
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain2.company.com
DocumentRoot /path/to/subdomain2
</VirtualHost>
<VirtualHost *:80>
ServerName company.com
ServerAlias *.company.com
DocumentRoot /path/to/primary/domain+catchall
</VirtualHost>
Note that the order is meaningful, the catchall domain has to be the last one.
This is particularly useful to avoid a mistyping in the client url raises an "inexistent host" error, letting the customer of your company think you are a bad server admin (not him a bad typer :P).