re = /I'm logged in as (?:a\s|an\s)(?:"([^"]*)"\s)?(?:user|customer)\s(?:(?:for[\sa\s|\san\s]?)(?:"([^"]*)"\s))?/
str = 'Given I\'m logged in as a user for a "password change" to eCommerce
Given I\'m logged in as an "inactive" user for a "password change" to eCommerce
Given I\'m logged in as an "inactive" user to eCommerce
Given I\'m logged in as a "simple" user to eCommerce
Given I\'m logged in as a user in a "shared" account to eCommerce
Given I\'m logged in as a user in a "bucket" account to eCommerce
Given I\'m logged in as a user for "email notification tests" to eCommerce
Given I\'m logged in as a user with "cs admin and sales admin" roles to eCommerce
Given I\'m logged in as a user with "cs & bb" roles for a "passwd change" to eCommerce
Given I\'m logged in as an "inactive" user with "cs admin" roles to eCommerce
Given I\'m logged in as "ducking" user with "ducking" roles to eCommerce
'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
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 Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html