How to add a catch-all wildcard to hook_menu?
The documentation for hook_menu() says it in the first wildcard example it provides. (Emphasis is mine.)


  Wildcards in Paths
  
  Simple Wildcards
  
  Wildcards within paths also work with integer substitution. For example, your module could register path 'my-module/%/edit':

  $items['my-module/%/edit'] = array(
    'page callback' =&gt; 'mymodule_abc_edit',
    'page arguments' =&gt; array(1),
  );

  
  When path 'my-module/foo/edit' is requested, integer 1 will be replaced with 'foo' and passed to the callback function. Note that wildcards may not be used as the first component.


The reason of this is pretty easy to understand: A wildcard as first component would be a catch-up for every Drupal route.
It would also conflict with the routes every Drupal module defines. This is also the reason why Drupal core uses node/%node for nodes, and user/%user for user accounts: Despite the wildcards being qualified, Drupal would not understand if a URI like 1 is referring to a node or a user account.