--- text.xml.old	2021-12-24 19:44:51.914188318 +1100
+++ text.xml	2021-12-24 19:22:00.855047204 +1100
@@ -857,18 +857,100 @@
 matching.
 </p>
 
-<todo>
-tables of bash metachars
-</todo>
+<table>
+  <tr>
+    <th>
+      Character
+    </th>
+    <th>
+      Meaning
+    </th>
+  </tr>
+  <tr>
+    <ti>
+      <c>*</c>
+    </ti>
+    <ti>
+      Matches any string, including the null string
+    </ti>
+  </tr>
+  <tr>
+    <ti>
+      <c>?</c>
+    </ti>
+    <ti>
+      Matches any single character
+    </ti>
+  </tr>
+  <tr>
+    <ti>
+      <c>[...]</c>
+    </ti>
+    <ti>
+      Matches any one of the enclosed characters.
+    </ti>
+  </tr>
+</table>
+
+<p>
+  Refer to the <c>bash</c> man page for further details and caveats regarding these characters.
+</p>
 
 <p>
 If the <c>extglob</c> shell option is enabled, a number of additional constructs
 are available. These can be <e>extremely</e> useful sometimes.
 </p>
 
-<todo>
-table of extra bash goodies
-</todo>
+<table>
+  <tr>
+    <th>
+      Construct
+    </th>
+    <th>
+      Meaning
+    </th>
+  </tr>
+  <tr>
+    <ti>
+      <c>?(pattern-list)</c>
+    </ti>
+    <ti>
+      Matches zero or one occurrence of the given patterns
+    </ti>
+  </tr>
+  <tr>
+    <ti>
+      <c>*(pattern-list)</c>
+    </ti>
+    <ti>
+      Matches zero or more occurrences of the given patterns
+    </ti>
+  </tr>
+  <tr>
+    <ti>
+      <c>+(pattern-list)</c>
+    </ti>
+    <ti>
+      Matches one or more occurrences of the given patterns
+    </ti>
+  </tr>
+  <tr>
+    <ti>
+     <c>@(pattern-list)</c>
+    </ti>
+    <ti>
+      Matches one of the given patterns
+    </ti>
+  </tr>
+  <tr>
+    <ti>
+      <c>!(pattern-list)</c>
+    </ti>
+    <ti>
+      Matches anything except one of the given patterns
+    </ti>
+  </tr>
+</table>
 
 </body>
 </subsection>