Index: src/wp-includes/formatting.php
===================================================================
--- src/wp-includes/formatting.php	(revision 28727)
+++ src/wp-includes/formatting.php	(working copy)
@@ -100,6 +100,11 @@
 		// Pattern-based replacements of characters.
 		$dynamic = array();
 
+		// '99 '99s '99's (apostrophe)  But never '9 or '999 or '99.0.
+		if ( "'" !== $apos ) {
+			$dynamic[ '/\'(?=\d\d(?:\Z|(?!\d|[.,]\d)))/' ] = $apos;
+		}
+
 		// Quoted Numbers like "42" or '42.00'
 		if ( '"' !== $opening_quote && '"' !== $closing_quote ) {
 			$dynamic[ '/(?<=\A|' . $spaces . ')"(\d[\d\.\,]*)"/' ] = $opening_quote . '$1' . $closing_quote;
@@ -108,11 +113,6 @@
 			$dynamic[ '/(?<=\A|' . $spaces . ')\'(\d[\d\.\,]*)\'/' ] = $opening_single_quote . '$1' . $closing_single_quote;
 		}
 
-		// '99 '99s '99's (apostrophe)
-		if ( "'" !== $apos ) {
-			$dynamic[ '/\'(?=\d)/' ] = $apos;
-		}
-
 		// Single quote at start, or preceded by (, {, <, [, ", -, or spaces.
 		if ( "'" !== $opening_single_quote ) {
 			$dynamic[ '/(?<=\A|[([{<"\-]|' . $spaces . ')\'/' ] = $opening_single_quote;
