+ $rw->do(set => 'jokers'); # Only translate jokers.
+ $rw->do('jokers'); # Same.
+ $rw->do(add => [ qw/sql commas/ ]); # Translate also SQL and commas.
+ $rw->do(rem => 'jokers'); # Specifying both 'sql' and 'jokers' is useless.
+ $rw->do(); # Translate nothing.
+
+The C<do> method returns the L<Regexp::Wildcards> object.
+
+=head2 C<type $type>
+
+Notifies to convert the metacharacters that corresponds to the predefined type C<$type>.
+C<$type> can be any of :
+
+=over 4
+
+=item *
+
+C<'jokers'>, C<'sql'>, C<'commas'>, C<'brackets'>
+
+Singleton types that enable the corresponding C<do> classes.
+
+=item *
+
+C<'unix'>
+
+Covers typical Unix shell globbing features (effectively C<'jokers'> and C<'brackets'>).
+
+=item *
+
+C<$^O> values for common Unix systems
+
+Wrap to C<'unix'> (see L<perlport> for the list).
+
+=item *
+
+C<undef>
+
+Defaults to C<'unix'>.
+
+=item *
+
+C<'win32'>
+
+Covers typical Windows shell globbing features (effectively C<'jokers'> and C<'commas'>).
+
+=item *
+
+C<'dos'>, C<'os2'>, C<'MSWin32'>, C<'cygwin'>
+
+Wrap to C<'win32'>.
+
+=back
+
+In particular, you can usually pass C<$^O> as the C<$type> and get the corresponding shell behaviour.
+
+ $rw->type('win32'); # Set type to win32.
+ $rw->type($^O); # Set type to unix on Unices and win32 on Windows
+ $rw->type(); # Set type to unix.
+
+The C<type> method returns the L<Regexp::Wildcards> object.
+
+=head2 C<< capture [ $captures E<verbar> set => $c1, add => $c2, rem => $c3 ] >>
+
+Specifies the list of atoms to capture.
+This method works like L</do>, except that the classes are different :
+
+=over 4
+
+=item *
+
+C<'single'>
+
+Captures all unescaped I<"exactly one"> metacharacters, i.e. C<?> for wildcards or C<_> for SQL.
+
+ 'a???b\\??' ==> 'a(.)(.)(.)b\\?(.)'
+ 'a___b\\__' ==> 'a(.)(.)(.)b\\_(.)'
+
+=item *
+
+C<'any'>
+
+Captures all unescaped I<"any"> metacharacters, i.e. C<*> for wildcards or C<%> for SQL.
+
+ 'a***b\\**' ==> 'a(.*)b\\*(.*)'
+ 'a%%%b\\%%' ==> 'a(.*)b\\%(.*)'
+
+=item *
+
+C<'greedy'>
+
+When used in conjunction with C<'any'>, it makes the C<'any'> captures greedy (by default they are not).
+
+ 'a***b\\**' ==> 'a(.*?)b\\*(.*?)'
+ 'a%%%b\\%%' ==> 'a(.*?)b\\%(.*?)'
+
+=item *
+
+C<'brackets'>
+
+Capture matching C<{ ... , ... }> alternations.
+
+ 'a{b\\},\\{c}' ==> 'a(b\\}|\\{c)'
+
+=back
+
+ $rw->capture(set => 'single'); # Only capture "exactly one" metacharacters.
+ $rw->capture('single'); # Same.
+ $rw->capture(add => [ qw/any greedy/ ]); # Also greedily capture "any" metacharacters.
+ $rw->capture(rem => 'greedy'); # No more greed please.
+ $rw->capture(); # Capture nothing.
+
+The C<capture> method returns the L<Regexp::Wildcards> object.
+
+=head2 C<convert $wc [ , $type ]>
+
+Converts the wildcard expression C<$wc> into a regular expression according to the options stored into the L<Regexp::Wildcards> object, or to C<$type> if it's supplied.
+It successively escapes all unprotected regexp special characters that doesn't hold any meaning for wildcards, then replace C<'jokers'>, C<'sql'> and C<'commas'> or C<'brackets'> (depending on the L</do> or L</type> options), all of this by applying the C<'capture'> rules specified in the constructor or by L</capture>.