diff --git a/__tests__/fixtures/purge-example.html b/__tests__/fixtures/purge-example.html
index c02578771..78132ef46 100644
--- a/__tests__/fixtures/purge-example.html
+++ b/__tests__/fixtures/purge-example.html
@@ -34,4 +34,6 @@ span.inline-grid.grid-cols-3(class="px-1.5")
.flow-root
.text-green-700.bg-green-100
.text-left= content
- %samp= output
\ No newline at end of file
+ %samp.font-mono{:data-foo => "bar"}= output
+ .col-span-4[aria-hidden=true]
+ .tracking-tight#headline
diff --git a/__tests__/purgeUnusedStyles.test.js b/__tests__/purgeUnusedStyles.test.js
index 6d6a7eb17..4a72b49c2 100644
--- a/__tests__/purgeUnusedStyles.test.js
+++ b/__tests__/purgeUnusedStyles.test.js
@@ -54,6 +54,10 @@ function assertPurged(result) {
expect(result.css).toContain('.text-green-700')
expect(result.css).toContain('.bg-green-100')
expect(result.css).toContain('.text-left')
+ expect(result.css).toContain('.font-mono')
+ expect(result.css).toContain('.col-span-4')
+ expect(result.css).toContain('.tracking-tight')
+ expect(result.css).toContain('.tracking-tight')
}
test('purges unused classes', () => {
diff --git a/src/lib/purgeUnusedStyles.js b/src/lib/purgeUnusedStyles.js
index 48ba6a85f..9146a510e 100644
--- a/src/lib/purgeUnusedStyles.js
+++ b/src/lib/purgeUnusedStyles.js
@@ -67,7 +67,7 @@ export default function purgeUnusedUtilities(config) {
const broadMatches = content.match(/[^<>"'`\s]*[^<>"'`\s:]/g) || []
// Capture classes within other delimiters like .block(class="w-1/2") in Pug
- const innerMatches = content.match(/[^<>"'`\s.()=%]*[^<>"'`\s.()=%:]/g) || []
+ const innerMatches = content.match(/[^<>"'`\s.(){}\[\]#=%]*[^<>"'`\s.(){}\[\]#=%:]/g) || []
return broadMatches.concat(innerMatches)
},