       return (value || '').replace(/((^|\s)[a-z])/g, (m) -> m.toUpperCase())
 
     nopunct: (value) ->
-      return Zotero.Utilities.XRegExp.replace(value || '', @punct, '', 'all')
-
+      return Zotero.Utilities.XRegExp.replace(value || '', @re.punct, '', 'all')
+

    return @safechars(Zotero.Utilities.removeDiacritics(str || '')).trim()

  safechars: (str) ->
    safe = Zotero.Utilities.XRegExp.replace(str, @unsafechars, '', 'all')
    Zotero.BetterBibTeX.debug('safechars:', str, '->', safe, ':', @unsafechars)
    return safe

  words: (str) ->


      if name != ''
        if withInitials and creator.firstName
          initials = Zotero.Utilities.XRegExp.replace(creator.firstName, @re.caseNotUpperTitle, '', 'all')
          initials = Zotero.Utilities.removeDiacritics(initials)
          initials = Zotero.Utilities.XRegExp.replace(initials, @re.caseNotUpper, '', 'all')
          name += initials
      else
        name = @stripHTML(creator.firstName)
