You could do something like:
bsdtar --exclude='*-*-*' -xf abb-configs.jar 'abb-*.properties'
To extract the abb-*.properties except those that contain two -s.
To use a regexp:
bsdtar -'s/^abb-[[:alpha:]]*\.properties$/~/' -'s/.*//' -xf abb-configs.jar
Where the first -s, does a noop substitution (~ is the equivalent of & in sed's s) for the archive members we want to extract, and the second deletes the ones we don't want (that haven't been matched by the first one) so we end up extracting the archive members whose name matches the ^abb-[[:alpha:]]*\.properties$ regex.
[[:alpha:]]* matches any sequence of 0 or more alphas. You could also use [^-]* for sequences of characters other than -. Replace * with \{1,\} for "1 or more" instead of "0 or more".
In your:
unzip abb-configs.jar abb-*[a-z].properties
First note that the * and [a-z] should be quoted as those are shell globbing operators:
unzip abb-configs.jar 'abb-*[a-z].properties'
(here quoting the whole argument).
unzip treats the pattern as a (basic) shell wildcard pattern, not as a regular expression.
In shell wildcards, * stands for any number of characters (like .* in regex). So here, it matches on abb-servicea-prod.service because * matches on servicea-pro and [a-z] on d.
Some shells have advanced wildcard operators that can match on one or more alphas like the [[:alpha:]]+ of extended regexps or the [[:alpha:]]\{1,\} of basic regexps. That includes ksh's +([[:alpha:]]) (also supported by bash -O extglob) and zsh -o extendedglob's [[:alpha:]]##, but those are not supported by unzip.
You could still use your shell's wildcard patterns though by doing (here in zsh as an example):
set -o extendedglob
members=( ${(f)"$(bsdtar tf abb-configs.jar)"} )
wanted=( ${(M)members:#abb-[[:alpha:]]##.properties} )
(( $#wanted )) && print -rNC1 -- $wanted |
bsdtar --null -T /dev/stdin -nxf abb-configs.jar
Or do the regexp matching with grep (and any shell):
bsdtar tf abb-configs.jar |
grep -xE 'abb-[[:alpha:]]+\.properties' |
tr '\n' '\0' |
bsdtar --null -T /dev/stdin -nxf abb-configs.jar
See these two issues with current versions of bsdtar for hints at potential problems if using that approach for other patterns.
bsdtar is the tar-like CLI interface to the libarchive library that can manipulate dozens of different archive formats, so is the one command you generally want to use if possible to deal with archives as then you can use the same API for all archive formats.
If you don't have and can't install bsdtar, but you have Info-ZIP's unzip command which can only deal with ZIP files (and jar files happen to be such files), you could do the same (assuming GNU xargs) with:
xargs -rd '\n' -a <(
unzip -Z1 abb-configs.jar |
grep -xE 'abb-[[:alpha:]]+\.properties'
) unzip -q abb-configs.jar
(unzip also treats arguments as wildcard patterns, not a problem here as the ones we select don't contain wildcard characters).