import Foundation
let pattern = #"\[caption([^\]]+)align="([^"]+)"\s+width="(\d+)"\](\s*\<img[^>]+>)\s*(.*?)\s*\[\/caption\]"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
[caption id="attachment_666" align="alignleft" width="316"]
<img class="wp-image-92692" src="img" width="316" alt="fitbit-yoga-lady.png" height="210">
text
[/caption]
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"<div\1style="width: \3px" class="wp-caption \2">\4\n <p class="caption">\5</p>\n</div>"#
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