This looks like it will work. @willmjr just thought I'd translate the regex here, in case it's confusing what each part does.
\\. = a literal period
[^\\.] = any character besides a literal period
+ = at least one time
[^\\.]+ = any non-period character more than once
[^\\.]+ happens to work for your particular case because str_extract() grabs the first match if there are multiple matches. But
[^\\.]+ actually matches the second half of your string as well. I would modify
^[^\\.]+. Confusingly, the
^ outside of the
 means that you're "anchoring" the regex to only look for matches that begin at the beginning of the string. Note that that's a different meaning than when
^ is inside the
, in which case it serves to specify "any character except the following".
For the second part, we have
"(?<=\\.).+". Breaking that down:
(?<=) is the "lookbehind assertion". The characters after the
= in the parentheses will be matched as "what comes before the pattern we're actually interested in". So those characters won't actually be returned in the match.
(?<=\\.) means "there is a period immediately before the desired match"
. outside the parentheses means "any character except \n"
+, as before, means "at least one time"
So putting it together,
"(?<=\\.).+" means "at least one character immediately following a period"
I hope that's helpful!