import Foundation
let pattern = #"(<(\w+)(?:\/|.*?)>)((\w+\s?)+)(<(?:\/|)\2+>)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
'<a class="class">' . $variable . '</a>'
"<a class="class">" . $variable . "</a>"
<a class="class">{{ $variable }}</a>
<a class="class">{{ __("words") }}</a>
<a class="class">some words</a>
<a/>some words<a>
<a/>some words</a>
<a/></a>
<a>Some words</a>
<a><a>Some words</a></a>
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"$1{{ __("$3") }}$5"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression