Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ doc/user/user.tex	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Sun May  3 10:13:13 2026
-%% Update Count     : 7425
+%% Last Modified On : Mon May  4 07:19:24 2026
+%% Update Count     : 7436
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -5469,9 +5469,10 @@
 
 \item
-\Indexc{quote}( character / string) )\index{manipulator!quote@©quote©} bracket text with appropriate quote characters.
+\Indexc{quote}( character / string, ©const char qleft©, ©const char qright©) )\index{manipulator!quote@©quote©} bracket text with appropriate quote characters.
 No quotes is the default.
 \begin{cfa}[belowskip=0pt]
-sout | quote( 'A' ) | quote( "abd" ) | quote( (string){ "@#!" } );
-'A'"abd" "@#!"
+sout | quote( 'A' ) | quote( 'W', '"' ) | quote( "abd" ) | quote( "abd", '<', '>' )
+	  | quote( (string){ "@#!" } ) | quote( (string){ "@#!" }, '[', ']' );
+'A'"W""abd" §\LstStringStyle{<abd>}§ "@#!" §\LstStringStyle{[@\#!]}§
 \end{cfa}
 
@@ -5743,5 +5744,5 @@
 
 \item
-\Indexc{quote}( ©char & ch©, ©const char Ldelimiter = '\''©, ©const char Rdelimiter = '\0'© )\index{manipulator!quote@©quote©}
+\Indexc{quote}( ©char & ch©, ©const char qleft = '\''©, ©const char qright = '\0'© )\index{manipulator!quote@©quote©}
 consumes the string ©"LCR"©, where ©L© is the left ©delimiter© character, ©C© is the value in ©ch©, and ©R© is the right delimiter character, which skips whitespace, consumes and ignores the left delimiter, reads a single character into ©ch©, and consumes and ignores the right delimiter (3 characters).
 If the delimit character is omitted, it defaults to ©'\''© (single quote).
@@ -5756,5 +5757,5 @@
 \item
 \begin{sloppypar}
-\Indexc{quote}( $wdi\ manipulator$, ©const char Ldelimiter = '\''©, ©const char Rdelimiter = '\0'© )\index{manipulator!quote@©quote©}
+\Indexc{quote}( $wdi\ manipulator$, ©const char qleft = '\''©, ©const char qright = '\0'© )\index{manipulator!quote@©quote©}
 consumes the scanset ©"L[^R]R"©, where ©L© is the left ©delimiter© character and ©R© is the right delimiter character, which skips whitespace, consumes and ignores the left delimiter, reads characters until the right-delimiter into the string variable (null terminated), and consumes and ignores the right delimiter.
 If the delimit character is omitted, it defaults to ©'"'© (double quote).
Index: libcfa/src/collections/string.cfa
===================================================================
--- libcfa/src/collections/string.cfa	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ libcfa/src/collections/string.cfa	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -10,6 +10,6 @@
 // Created On       : Fri Sep 03 11:00:00 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Sep 15 10:26:35 2025
-// Update Count     : 394
+// Last Modified On : Sun May  3 23:21:25 2026
+// Update Count     : 395
 //
 
@@ -214,5 +214,5 @@
 		for ( i; l ) cstr[i] = f.val[i];					// copy string
 		cstr[l] = '\0';										// terminate
-		_Ostream_Manip(const char *) cf @= { cstr, f.wd, f.pc, f.base, {f.all} };
+		_Ostream_Manip(const char *) cf @= { cstr, f.wd, f.pc, f.base, {f.all}, f.qleft, f.qright };
 		return os | cf | nonl;
 	} // ?|?
Index: libcfa/src/collections/string.hfa
===================================================================
--- libcfa/src/collections/string.hfa	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ libcfa/src/collections/string.hfa	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -10,6 +10,6 @@
 // Created On       : Fri Sep 03 11:00:00 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat May  2 19:09:55 2026
-// Update Count     : 322
+// Last Modified On : Sun May  3 23:24:08 2026
+// Update Count     : 324
 //
 
@@ -90,5 +90,6 @@
 	_Ostream_Manip(string) oct( string s ) { return (_Ostream_Manip(string))@{ .val = s, .wd = 1, .pc = 0, .base = 'o', { .all = 0 } }; }
 	_Ostream_Manip(string) hex( string s ) { return (_Ostream_Manip(string))@{ .val = s, .wd = 1, .pc = 0, .base = 'x', { .all = 0 } }; }
-	_Ostream_Manip(string) quote( string s ) { return (_Ostream_Manip(string))@{ .val = s, .wd = 1, .pc = 0, .base = 's', { .flags.quote = true } }; }
+	_Ostream_Manip(string) quote( string s, const char qleft = '"', const char qright = '\0' ) {
+		return (_Ostream_Manip(string))@{ .val = s, .wd = 1, .pc = 0, .base = 's', { .flags.quote = true }, .qleft = qleft, .qright = qright }; }
 	_Ostream_Manip(string) wd( unsigned int wd, string s ) { return (_Ostream_Manip(string))@{ .val = s, .wd = wd, .pc = 0, .base = 's', { .all = 0 } }; }
 	_Ostream_Manip(string) wd( unsigned int wd, unsigned int pc, string s ) { return (_Ostream_Manip(string))@{ .val = s, .wd = wd, .pc = pc, .base = 's', { .flags.pc = true } }; }
@@ -98,5 +99,6 @@
 	_Ostream_Manip(string) & nobase( _Ostream_Manip(string) & fmt ) { fmt.flags.nobsdp = true; return fmt; }
 	_Ostream_Manip(string) & upcase( _Ostream_Manip(string) & fmt ) { if ( fmt.base == 'x' || fmt.base == 'b' ) fmt.base -= 32; /* upper case */ return fmt; }
-	_Ostream_Manip(string) & quote( _Ostream_Manip(string) & fmt ) { fmt.flags.quote = true; return fmt; } \
+	_Ostream_Manip(string) & quote( _Ostream_Manip(string) & fmt, const char qleft = '"', const char qright = '\0' ) {
+		fmt.flags.quote = true; fmt.qleft = qleft, fmt.qright = qright; return fmt; }
 } // distribution
 
Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ libcfa/src/iostream.cfa	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun May  3 08:08:29 2026
-// Update Count     : 2241
+// Last Modified On : Sun May  3 22:02:37 2026
+// Update Count     : 2271
 //
 
@@ -698,6 +698,5 @@
 		} // if
 		if ( f.flags.quote ) {							// print as string
-			char qv[] = "' '";
-			qv[1] = f.val;
+			char qv[] = { f.qleft, f.val, f.qright ? : f.qleft, '\0' };
 			f.flags.quote = false;						// already quoted
 			_Ostream_Manip(const char *) fmtuc @= { qv, f.wd, f.pc, 's', {f.all} };
@@ -743,8 +742,6 @@
 			int len = strlen( f.val );
 			char qv[len + 3];							// space for quotes and '\0'
-			qv[0] = '"';								// copy string surrounded with quotes
-			strcpy( &qv[1], f.val );
-			qv[len + 1] = '"';
-			qv[len + 2] = '\0';
+			qv[0] = f.qleft; strcpy( &qv[1], f.val );
+			qv[len + 1] = f.qright ? : f.qleft; qv[len + 2] = '\0'; // copy string surrounded with quotes
 			f.flags.quote = false;						// already quoted
 			_Ostream_Manip(const char *) fmtuc @= { qv, f.wd, f.pc, 's', {f.all} };
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ libcfa/src/iostream.hfa	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat May  2 18:48:56 2026
-// Update Count     : 780
+// Last Modified On : Sun May  3 21:55:06 2026
+// Update Count     : 829
 //
 
@@ -209,4 +209,5 @@
 	char base;											// numeric base / floating-point style
 	inline _Ostream_Manip_Mode;
+	char qleft, qright;									// quote delimiters (PLACE HERE SO OPTIONAL IN INITIALIZATION)
 }; // _Ostream_Manip
 
@@ -289,5 +290,6 @@
 	_Ostream_Manip(char) oct( char c ) { return (_Ostream_Manip(char))@{ .val = c, .wd = 1, .pc = 0, .base = 'o', { .all = 0 } }; }
 	_Ostream_Manip(char) hex( char c ) { return (_Ostream_Manip(char))@{ .val = c, .wd = 1, .pc = 0, .base = 'x', { .all = 0 } }; }
-	_Ostream_Manip(char) quote( char c ) { return (_Ostream_Manip(char))@{ .val = c, .wd = 1, .pc = 0, .base = 'c', { .flags.quote = true } }; }
+	_Ostream_Manip(char) quote( char c, const char qleft = '\'', const char qright = '\0' ) {
+		return (_Ostream_Manip(char))@{ .val = c, .wd = 1, .pc = 0, .base = 'c', { .flags.quote = true }, .qleft = qleft, .qright = qright }; }
 	_Ostream_Manip(char) wd( unsigned int wd, char c ) { return (_Ostream_Manip(char))@{ .val = c, .wd = wd, .pc = 0, .base = 'c', { .all = 0 } }; }
 	_Ostream_Manip(char) & wd( unsigned int wd, _Ostream_Manip(char) & fmt ) { fmt.wd = wd; return fmt; }
@@ -295,5 +297,6 @@
 	_Ostream_Manip(char) & upcase( _Ostream_Manip(char) & fmt ) { if ( fmt.base == 'x' || fmt.base == 'b' ) fmt.base -= 32; /* upper case */ return fmt; }
 	_Ostream_Manip(char) & nobase( _Ostream_Manip(char) & fmt ) { fmt.flags.nobsdp = true; return fmt; }
-	_Ostream_Manip(char) & quote( _Ostream_Manip(char) & fmt ) { fmt.flags.quote = true; return fmt; }
+	_Ostream_Manip(char) & quote( _Ostream_Manip(char) & fmt, const char qleft = '\'', const char qright = '\0' ) {
+		fmt.flags.quote = true; fmt.qleft = qleft, fmt.qright = qright; return fmt; }
 } // distribution
 forall( ostype & | basic_ostream( ostype ) ) {
@@ -308,5 +311,6 @@
 	_Ostream_Manip(const char *) oct( const char s[] ) { return (_Ostream_Manip(const char *))@{ .val = s, .wd = 1, .pc = 0, .base = 'o', { .all = 0 } }; }
 	_Ostream_Manip(const char *) hex( const char s[] ) { return (_Ostream_Manip(const char *))@{ .val = s, .wd = 1, .pc = 0, .base = 'x', { .all = 0 } }; }
-	_Ostream_Manip(const char *) quote( const char s[] ) { return (_Ostream_Manip(const char *))@{ .val = s, .wd = 1, .pc = 0, .base = 's', { .flags.quote = true } }; }
+	_Ostream_Manip(const char *) quote( const char s[], const char qleft = '"', const char qright = '\0' ) {
+		return (_Ostream_Manip(const char *))@{ .val = s, .wd = 1, .pc = 0, .base = 's', { .flags.quote = true }, .qleft = qleft, .qright = qright }; }
 	_Ostream_Manip(const char *) wd( unsigned int wd, const char s[] ) { return (_Ostream_Manip(const char *))@{ .val = s, .wd = wd, .pc = 0, .base = 's', { .all = 0 } }; }
 	_Ostream_Manip(const char *) wd( unsigned int wd, unsigned int pc, const char s[] ) { return (_Ostream_Manip(const char *))@{ .val = s, .wd = wd, .pc = pc, .base = 's', { .flags.pc = true } }; }
@@ -316,5 +320,6 @@
 	_Ostream_Manip(const char *) & upcase( _Ostream_Manip(const char *) & fmt ) { if ( fmt.base == 'x' || fmt.base == 'b' ) fmt.base -= 32; /* upper case */ return fmt; }
 	_Ostream_Manip(const char *) & nobase( _Ostream_Manip(const char *) & fmt ) { fmt.flags.nobsdp = true; return fmt; }
-	_Ostream_Manip(const char *) & quote( _Ostream_Manip(const char *) & fmt ) { fmt.flags.quote = true; return fmt; } \
+	_Ostream_Manip(const char *) & quote( _Ostream_Manip(const char *) & fmt, const char qleft = '"', const char qright = '\0' ) {
+		fmt.flags.quote = true; fmt.qleft = qleft; fmt.qright = qright; return fmt; }
 } // distribution
 forall( ostype & | basic_ostream( ostype ) ) {
@@ -430,5 +435,5 @@
 	union {
 		const char * scanset;
-		char delimiters[3];								// [0] => left, [1] => right
+		char delimiters[3];								// [0] => qleft or terminator, [1] => qright or getline '\0', [2] => char '\0' or char * '\1'
 	};
 	int wd;												// width
Index: tests/collections/.expect/string-ostream.txt
===================================================================
--- tests/collections/.expect/string-ostream.txt	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ tests/collections/.expect/string-ostream.txt	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -1,5 +1,5 @@
 string
-abcd "abcd"     abcd   "abcd"   abcd abcd     "abcd"  
-abcd "abcd"     abcd   "abcd"   abcd abcd     "abcd"  
+abcd "abcd"     abcd   "abcd"   'abcd'   <abcd>   abcd abcd     "abcd"  
+abcd "abcd"     abcd   "abcd"   'abcd'   <abcd>   abcd abcd     "abcd"  
 141 142 143 144 0141 0142 0143 0144      141      142      143      144 0141     0142     0143     0144    
 141 142 143 144 0141 0142 0143 0144      141      142      143      144 0141     0142     0143     0144    
Index: tests/collections/string-ostream.cfa
===================================================================
--- tests/collections/string-ostream.cfa	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ tests/collections/string-ostream.cfa	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -8,6 +8,6 @@
 // Created On       : Sat May  2 18:02:34 2026
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat May  2 19:06:22 2026
-// Update Count     : 7
+// Last Modified On : Sun May  3 23:31:07 2026
+// Update Count     : 8
 // 
 
@@ -18,7 +18,9 @@
 	sout | "string";
 	const char * cs = "abcd";
-	sout | cs | quote( cs ) | wd(8,cs) | quote(wd(8,cs)) | wd(6,8,cs) | left(wd(8,cs)) | quote(left(wd(8,cs)));
+	sout | cs | quote(cs) | wd(8,cs) | quote(wd(8,cs)) | quote(wd(8,cs), '\'')| quote(wd(8,cs), '<', '>')
+		 | wd(6,8,cs) | left(wd(8,cs)) | quote(left(wd(8,cs)));
 	string s = "abcd";
-	sout | s | quote( s ) | wd(8,s) | quote(wd(8,s)) | wd(6,8,s) | left(wd(8,s)) | quote(left(wd(8,s)));
+	sout | s | quote(s) | wd(8,s) | quote(wd(8,s)) | quote(wd(8,s), '\'')| quote(wd(8,s), '<', '>')
+		 | wd(6,8,s) | left(wd(8,s)) | quote(left(wd(8,s)));
 
 	sout | nobase(oct(cs)) | upcase(oct(cs)) | nobase(wd(8,oct(cs))) | left(wd(-8,oct(cs)));
Index: tests/io/.expect/manipulatorsOutput1.arm64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput1.arm64.txt	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ tests/io/.expect/manipulatorsOutput1.arm64.txt	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -38,12 +38,12 @@
 
 char
-a'a' ' '       a     'a'    aa    
-a'a' ' '       a     'a'    aa    
+a'a' ' '"a"<a>       a     'a'     "a"     {a}    aa    
+a'a' ' '"a"<a>       a     'a'     "a"     {a}    aa    
 141 0141      141 0141     61 0x61       61 0x61    
 141 0141      141 0141     61 0X61       61 0x61     1100001 0B1100001      1100001 0b1100001
 
 char *
-abcd "abcd"     abcd   "abcd"   abcd abcd     "abcd"  
-abcd "abcd"     abcd   "abcd"   abcd abcd     "abcd"  
+abcd "abcd"     abcd   "abcd"   'abcd'   <abcd>   abcd abcd     "abcd"  
+abcd "abcd"     abcd   "abcd"   'abcd'   <abcd>   abcd abcd     "abcd"  
 141 142 143 144 0141 0142 0143 0144      141      142      143      144 0141     0142     0143     0144    
 61 62 63 64 0X61 0X62 0X63 0X64       61       62       63       64 0x61     0x62     0x63     0x64    
Index: tests/io/.expect/manipulatorsOutput1.x64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput1.x64.txt	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ tests/io/.expect/manipulatorsOutput1.x64.txt	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -38,12 +38,12 @@
 
 char
-a'a' ' '       a     'a'    aa    
-a'a' ' '       a     'a'    aa    
+a'a' ' '"a"<a>       a     'a'     "a"     {a}    aa    
+a'a' ' '"a"<a>       a     'a'     "a"     {a}    aa    
 141 0141      141 0141     61 0x61       61 0x61    
 141 0141      141 0141     61 0X61       61 0x61     1100001 0B1100001      1100001 0b1100001
 
 char *
-abcd "abcd"     abcd   "abcd"   abcd abcd     "abcd"  
-abcd "abcd"     abcd   "abcd"   abcd abcd     "abcd"  
+abcd "abcd"     abcd   "abcd"   'abcd'   <abcd>   abcd abcd     "abcd"  
+abcd "abcd"     abcd   "abcd"   'abcd'   <abcd>   abcd abcd     "abcd"  
 141 142 143 144 0141 0142 0143 0144      141      142      143      144 0141     0142     0143     0144    
 61 62 63 64 0X61 0X62 0X63 0X64       61       62       63       64 0x61     0x62     0x63     0x64    
Index: tests/io/.expect/manipulatorsOutput1.x86.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput1.x86.txt	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ tests/io/.expect/manipulatorsOutput1.x86.txt	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -38,12 +38,12 @@
 
 char
-a'a' ' '       a     'a'    aa    
-a'a' ' '       a     'a'    aa    
+a'a' ' '"a"<a>       a     'a'     "a"     {a}    aa    
+a'a' ' '"a"<a>       a     'a'     "a"     {a}    aa    
 141 0141      141 0141     61 0x61       61 0x61    
 141 0141      141 0141     61 0X61       61 0x61     1100001 0B1100001      1100001 0b1100001
 
 char *
-abcd "abcd"     abcd   "abcd"   abcd abcd     "abcd"  
-abcd "abcd"     abcd   "abcd"   abcd abcd     "abcd"  
+abcd "abcd"     abcd   "abcd"   'abcd'   <abcd>   abcd abcd     "abcd"  
+abcd "abcd"     abcd   "abcd"   'abcd'   <abcd>   abcd abcd     "abcd"  
 141 142 143 144 0141 0142 0143 0144      141      142      143      144 0141     0142     0143     0144    
 61 62 63 64 0X61 0X62 0X63 0X64       61       62       63       64 0x61     0x62     0x63     0x64    
Index: tests/io/manipulatorsOutput1.cfa
===================================================================
--- tests/io/manipulatorsOutput1.cfa	(revision 8403b32b698505ac44f8092b4d1d7c296b72b83e)
+++ tests/io/manipulatorsOutput1.cfa	(revision bb1eabcd6f64b0ee41ffacd7dd40e7329004f68e)
@@ -7,6 +7,6 @@
 // Created On       : Sat Jun  8 18:04:11 2019
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat May  2 18:50:48 2026
-// Update Count     : 65
+// Last Modified On : Sun May  3 23:31:09 2026
+// Update Count     : 76
 // 
 
@@ -100,7 +100,8 @@
 
 	sout | nl | "char";
-	char c = 'a', * qc = "'a'";
-	printf( "%c%s%c'%c'%8c%8s%5c%-5c\n", c, qc, ' ', ' ', c, qc, c, c );
-	sout | c | quote(c) | ' ' | quote(' ') | wd(8,c) | quote( wd(8,c) ) | wd(5,c) | left(wd(5,c));
+	char c = 'a';
+	printf( "%c'%c'%c'%c'\"%c\"<%c>%8c%8s%8s%8s%5c%-5c\n", c, c, ' ', ' ', c, c, c, "'a'", "\"a\"", "{a}", c, c );
+	sout | c | quote(c) | ' ' | quote(' ') | quote( c, '"' ) | quote( c, '<', '>' )
+		 | wd(8,c) | quote( wd(8,c) ) | quote( wd(8,c), '"' ) | quote( wd(8,c), '{', '}' ) | wd(5,c) | left(wd(5,c));
 	printf( "%hho %#hho %8hho %#-8hho %hhx %#hhx %8hhx %#-8hhx\n", c, c, c, c, c, c, c, c );
 	sout | nobase(oct(c)) | upcase(oct(c)) | nobase(wd(8,oct(c))) | left(wd(-8,oct(c))) | nonl;
@@ -109,10 +110,11 @@
 
 	sout | nl | "char *";
-	const char * s = "abcd", * qs = "\"abcd\"";
-	printf( "%s %s %8s %8s %6.8s %-8s %-8s\n", s, qs, s, qs, s, s, qs );
-	sout | s | quote( s ) | wd(8,s) | quote(wd(8,s)) | wd(6,8,s) | left(wd(8,s)) | quote(left(wd(8,s)));
-	sout | nobase(oct(s)) | upcase(oct(s)) | nobase(wd(8,oct(s))) | left(wd(-8,oct(s)));
-	sout | nobase(hex(s)) | upcase(hex(s)) | nobase(wd(8,hex(s))) | left(wd(-8,hex(s)));
-	sout | nobase(bin(s)) | upcase(bin(s)) | nobase(wd(12,bin(s))) | left(wd(-12,bin(s)));
+	const char * cs = "abcd";
+	printf( "%s %s %8s %8s %8s %8s %6.8s %-8s %-8s\n", cs, "\"abcd\"", cs, "\"abcd\"", "'abcd'", "<abcd>", cs, cs, "\"abcd\"" );
+	sout | cs | quote(cs) | wd(8,cs) | quote(wd(8,cs)) | quote(wd(8,cs), '\'')| quote(wd(8,cs), '<', '>')
+		 | wd(6,8,cs) | left(wd(8,cs)) | quote(left(wd(8,cs)));
+	sout | nobase(oct(cs)) | upcase(oct(cs)) | nobase(wd(8,oct(cs))) | left(wd(-8,oct(cs)));
+	sout | nobase(hex(cs)) | upcase(hex(cs)) | nobase(wd(8,hex(cs))) | left(wd(-8,hex(cs)));
+	sout | nobase(bin(cs)) | upcase(bin(cs)) | nobase(wd(12,bin(cs))) | left(wd(-12,bin(cs)));
 }
 
