I have a found a few answers to your question. I guess it all depends on how you want to structure your Zend Framework Software.
From my understanding, you have a controller called Company. Then, it has various actions that include productOverviewAction(), etc.
So, here are a few 'almost there' solutions - and then I'll solve your current dilema. :)
First Possible Answer
You may want to use the controller Company for company specific information. Perhaps you'll make a controller called Product for product information. Then, you would actually want to go to something like /product/[unique-id]/overview - nice URL. Here's the route to match that:
$route = new Zend_Controller_Router_Route(
'product/:productCode/:action',
array(
'controller'=>'product'
)
);
As you see, it's not even a regular expression, so it can be fast!
Second Possible Answer
The reason you need the regular expression is because the action does not match the url, but is made of part of it. However, let's say you changed Company::productOverviewAction() to Company::OverviewAction() - you then could use this route:
$route = new Zend_Controller_Router_Route(
'company/:productCode/:action',
array(
'controller'=>'company'
)
);
However, I know that's not exactly what you asked...
The Almost Exact Answer
Without doing modifications to the routing class, you can use the following router:
$route = new Zend_Controller_Router_Route(
'company/:productCode/:action',
array(
'controller'=>'company'
)
);
And then, since it gets directed to each action, you can proxy the actions in the CompanyController. For example:
public function overviewAction()
{
return $this->productOverviewAction();
}
*Note: I did not use _forward() as not to redispatch (I think that happens...)
Best of luck!