No prob! Whenever it modifies `self`, that means it's acting on the string itself, rather than a new one:

```ruby
 def smart_capitalize
  target = dup
  # ignore any leading crazy characters and capitalize the first real character
  if target =~ /^['"\(\[']*([a-z])/
    i = index($1)
    x = target[i,target.length]
    # word with capitals and periods mid-word are left alone
    target[i,1] = target[i,1].upcase unless x =~ /[A-Z]/ or x =~ /\.\w+/
  end
  target
end
```