Index: /Validate External Links/validate_external_links.sh
===================================================================
--- /Validate External Links/validate_external_links.sh	(revision 1177)
+++ /Validate External Links/validate_external_links.sh	(revision 1178)
@@ -48,5 +48,5 @@
 
 # Fixed strings -- see the occurrences of these variables to learn their purpose
-AGENT="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36"
+AGENT="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
 ARCHIVE_API="http://archive.org/wayback/available"
 ARCHIVE_GENERIC="https://web.archive.org/web/*"
@@ -77,5 +77,5 @@
 declare -a OK_CODES=(200 401 405 406 418 501)
 declare -a RD_CODES=(301 302 303 307 308)
-declare -a NG_CODES=(000 400 403 404 410 429 500 502 503 504 530)
+declare -a NG_CODES=(000 400 403 404 410 429 500 502 503 504 520 530)
 
 # Characters not allowed in a URL. Curly braces are sometimes used on the wiki to build a link using
@@ -124,5 +124,5 @@
 ### HELP OUTPUT ###
 # A pseudo-man page. Here is the 80-character rule for the page text:
-# 234567890123456789012345678901234567890123456789012345678901234567890123456789
+# 345678901234567890123456789012345678901234567890123456789012345678901234567890
 function printHelp()
 {
@@ -535,5 +535,5 @@
    if [ $LINKS_PROCESSED -gt 0 ]; then valPrint ctrh "$LINKS_PROCESSED processed $(pluralCheckNoun link $LINKS_PROCESSED):"; fi
    if [ $LINK_ERRORS -gt 0 ]; then valPrint ctrh "- $LINK_ERRORS $(pluralCheckNoun link $LINK_ERRORS) could not be processed"; fi
-   if [ $SKIP_ARCHIVES -gt 0 ]; then valPrint ctrh "- $SKIP_ARCHIVES archive.org/archive.is $(pluralCheckNoun link $SKIP_ARCHIVES) were not checked"; fi
+   if [ $SKIP_ARCHIVES -gt 0 ]; then valPrint ctrh "- $SKIP_ARCHIVES archive.org/archive.is $(pluralCheckNoun link $SKIP_ARCHIVES) $(pluralCheckWas $SKIP_ARCHIVES) not checked"; fi
    if [ $LINK_PROBLEMS_TOTAL -gt 0 ]; then valPrint ctrh "- $LINK_PROBLEMS_TOTAL processed $(pluralCheckNoun link $LINK_PROBLEMS_TOTAL) had $(pluralCheckAn $LINK_PROBLEMS_TOTAL)$(pluralCheckNoun issue $LINK_PROBLEMS_TOTAL)"; fi
    if [ $LINKS_EXCEPTED -gt 0 ]; then valPrint ctr "  (excepted $LINKS_EXCEPTED link $(pluralCheckNoun issue $LINKS_EXCEPTED) from report)"; valPrint h "&nbsp;&nbsp;(excepted $LINKS_EXCEPTED $(pluralCheckNoun link $LINKS_EXCEPTED) from report)"; fi
@@ -1137,6 +1137,12 @@
          EXCEPT_URL="${EXCEPT_LINE#*,}"
          EXCEPT_URL="${EXCEPT_URL%,*}"
-         if [ "$EXCEPT_URL" != "$URL" ]; then
-            continue
+         if [[ "$EXCEPT_URL" =~ \* ]]; then # if this exception URL contains the '*' wildcard, use pattern-matching with it
+            if [[ "$URL" =~ "$EXCEPT_URL" ]]; then
+               continue
+            fi
+         else
+            if [ "$EXCEPT_URL" != "$URL" ]; then # otherwise just use a straight string comparison
+               continue
+            fi
          fi
 
