       }
     }
     
+    indent()
+    output(")")
+    
     if terminateLine {
-      print(")")
-    } else {
-      indent()
-      output(")")
+      self.terminateLine()
     }
   }
 
   // TODO: Some way to integrate this with conversion...
   mutating func printAsPattern(
-    _ member: DSLTree.CustomCharacterClass.Member
+    _ member: DSLTree.CustomCharacterClass.Member,
+    wrap: Bool = true
   ) {
     switch member {
     case let .custom(ccc):

      if ccc.isInverted {
        printIndented { printer in
          printer.indent()
          
          if terminateLine {
            printer.print(".inverted")
          } else {
            printer.output(".inverted")
          }
        }
      }

    // If we only have 1 member, then we can emit it without the extra
    // CharacterClass initialization
    if ccc.members.count == 1 {
      printAsPattern(ccc.members[0], wrap: wrap)
      
      if terminateLine {
        self.terminateLine()
