﻿# A property within a JSON string
(?<=             # After:
[\{\,]           # A bracket or comma
)
\s{0,}           # Optional Whitespace
(?<Quoted>["'])? # There's an optional opening quote
(?<Name>         # Capture the Name, which is:
.+?              # Anything until...
)
(?=              
    (?(Quoted)   # If quoted
        ((?<!\\)\k<Quoted>) # the closing quote
        |
        ([\s:])  # otherwise, whitespace or a colon
    )
)
(?:              # Match but don't store:
    (?(Quoted)(\k<Quoted>))
\s{0,}     # a double-quote, optional whitespace:
)
(?=\:)      # Look ahead to see that we're followed by a :, but don't include it in the match.
