Need Regex pattern space and hyphen validation [duplicate]

I need regex pattern for phone number with below protocols

  1. Phone number allow + symbol at first position only with optional value

  2. - (hyphen) should not allow first and last position . But hyphen can allow in between number but maximum three hyphen can allow

  3. Space can allow in between numbers but continuously should not allow more than one space .. but single space allow n number of times

Example of allowed patterns:

  • +34 35 45-45-55-4
  • 34-5-4-45 5 5 555

Example of invalid patterns:

  • 34 455 55-66— 5–
  • -455-
  • 444 55 - 5- -55

When I tried the following pattern, then 33445-445 4556 45666-4566 and 33445-445 4556 45666-4566 are not accepted:

/^+?d+(?:-d+){0,3}(?: d+){0,}$/gm