Index: tests/collections/.expect/string-api-coverage.txt
===================================================================
--- tests/collections/.expect/string-api-coverage.txt	(revision 1e28e05ba900989f10f4e16a3ef14f7d3e4de9d1)
+++ tests/collections/.expect/string-api-coverage.txt	(revision 01e6bd91bb0ba248762c1443aa17b2e3660c352f)
@@ -86,2 +86,6 @@
 3 0 0 11 26 0
 abc   abcdefghijk abcdefghijklmnopqrstuvwxyz 
+8 3 3
+1FeC34aB .,; XXX
+0 0 3
+1  XXX
Index: tests/collections/string-api-coverage.cfa
===================================================================
--- tests/collections/string-api-coverage.cfa	(revision 1e28e05ba900989f10f4e16a3ef14f7d3e4de9d1)
+++ tests/collections/string-api-coverage.cfa	(revision 01e6bd91bb0ba248762c1443aa17b2e3660c352f)
@@ -2,5 +2,5 @@
 #include <string_sharectx.hfa>
 #include <fstream.hfa>
-
+#include <ctype.h>										// isxdigit, ispunct, isupper
 
 // Purpose: call each function in string.hfa, top to bottom
@@ -407,3 +407,23 @@
         | (return string)include( alphabet, cc_alphabet )  // "abcdefghijklmnopqrstuvwxyz"
         | (return string)exclude( alphabet, cc_alphabet ); // ""
+
+	sout
+		| (return size_t)include( "1FeC34aB", isxdigit )
+		| (return size_t)include( ".,;’!\"", ispunct )
+		| (return size_t)include( "XXXx", isupper );
+
+	sout
+		| (return string)include( "1FeC34aB", isxdigit )
+		| (return string)include( ".,;’!\"", ispunct )
+		| (return string)include( "XXXx", isupper );
+
+	sout
+		| (return size_t)exclude( "1FeC34aB", isdigit )
+		| (return size_t)exclude( ".,;’!\"", ispunct )
+		| (return size_t)exclude( "XXXx", islower );
+
+	sout
+		| (return string)exclude( "1FeC34aB", isalpha )
+		| (return string)exclude( ".,;’!\"", ispunct )
+		| (return string)exclude( "XXXx", islower );
 }
